Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ile znaków
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
kapral
robie skrypt który bedzie wyświetlał ile znaków pozostało do wpisania. Np w polu mozna wpisac tylko 10 znakow to za każdym wpisaniem znaku z boku wyświetla sie liczba ile jeszcze zostało, nawet jesli ktos wpisze wiecej niz dziesiec to niech sie nie zatrzymuje tylko odejmuje dalej czyli bedą liczby ujeme.
Zrobiłem cos takiego ale to mi nie działa:
  1. <script type="text/javascript">
  2. function 10-znakow()
  3. {
  4. formularz=document.form.imie.value.length;
  5. max=10;
  6. pozostalo=max-formularz;
  7. zmienna=document.getElementById('znakow');
  8. zmienna.value = "pozostalo";
  9. }
  10. </head>
  11. <input type="text" name="imie" onFocus="10-znakow()"> <span id="znakow"></span>
  12. </form>
  13. </body>
  14. </html>
TomASS
  1. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  2. <script type="text/javascript">
  3. function $(id) {
  4. return document.getElementById(id);
  5. }
  6.  
  7. function znakow(){
  8. formularz=parseInt($("imie").value.length);
  9. var maximum=10;
  10. pozostalo=maximum-formularz;
  11. $("pozostalo").value = pozostalo;
  12. }
  13. </head>
  14. <input type="text" id="imie" onChange="znakow()" onFocus="znakow()">
  15. <input type="pozostalo" id="pozostalo"/>
  16. </form>
  17. </body>
  18. </html>


Musi działać smile.gif Chcesz wiedzieć co miałeś źle, czy to Ci wystarcza smile.gif
kapral
do TomASS ale twój przykład nie działa poprawnie no i ja bym chciał żeby liczby ile jeszcze zostało nie były wyświetlane w formularzu.

Juz zrobiłem:
  1. <script type="text/javascript">
  2. function ile_znakow()
  3. {
  4. ile=formularz.imie.value.length
  5. max=10;
  6. pozostalo=max-ile;
  7. formularz.znak.value=pozostalo;
  8. }
  9. </head>
  10. <form name="formularz">
  11. <input type="text" name="imie" size="50" onkeyup="ile_znakow()" onkeypress="ile_znakow()">
  12. <br>
  13. pozostało znaków
  14. <br>
  15. <input type="text" name="znak" size="3" disabled="true" value="10">
  16. </form>
  17. </body>
  18. </html>


Teraz bym chciał zrobić z tego funkcje tak abym mógł bym podawać w funkcji ile znaków, tak abym jedna funkcje mógłbym wykorzystać do kilku pól formularzy, podając max liczbe znaków jako parametr funkcji
LBO
  1. <script type="text/javascript">
  2. function ile_znakow(max, val, id) {
  3. document.getElementById(id).value = max - val.length;;
  4. }
  5. </head>
  6. <form name="formularz">
  7. <input type="text" name="imie" size="50" onkeyup="javascript:ile_znakow(10, this.value, 'pierwszy')" onkeypress="javascript:ile_znakow(10, this.value, 'znak')">
  8. <br>
  9. pozostalo znakow
  10. <br>
  11. <input type="text" id="pierwszy" name="znak" size="3" disabled="true" value="10">
  12. <br>
  13. <input type="text" name="nazwisko" size="50" onkeyup="javascript:ile_znakow(30, this.value, 'drugi')" onkeypress="javascript:ile_znakow(30, this.value, 'drugi')">
  14. <br>
  15. pozostalo znakow
  16. <br>
  17. <input type="text" id="drugi" name="znak" size="3" disabled="true" value="10">
  18. <br>
  19. </form>
  20. </body>
  21. </html>
Zajec
Ludzie, trochę zgodności ze standardami :-|

1) Wszystkie onclick onmouseover onmouseout onfocus itp. to zdarzenia JavaScript - a nie zwykłe parametry z adresem odnośnika. Wstawiamy w nie kod JavaScript, np.:
Kod
onclick="alert('opla');"


2) Odowłania document.all (lub wręcz samo all) dawno wyszyły z mody i ich stosowania odradza sam M$. Nauczcie się więc, jak wygląda prawidłowe odwołanie do formularza (bez korzystania z id):
Kod
document.forms['formularz'].elements['element']
TomASS
Cytat
(bez korzystania z id):

A może masz jakiś artykuł na ten temat, ciekaw jestem argumentacji... smile.gif Zapewne masz rację - ja tak z przyzwyczjenia i uproszczenia tongue.gif
vieri_pl
a czy można zrobić, tak że jak ktoś kto pisze w polu textarea widzi ze pozostalo np. 0 znaków z 255 to żeby już niemógł pisać ?
Zajec
Cytat(TomASS @ 2006-02-04 11:35:22)
Cytat
(bez korzystania z id):

A może masz jakiś artykuł na ten temat, ciekaw jestem argumentacji... smile.gif Zapewne masz rację - ja tak z przyzwyczjenia i uproszczenia tongue.gif
Z id można oczywiście korzystać i jest to zalecane. Ale czasami webmasterzy nie lubią robić rzeczy typu
Kod
<input type="text" name="imie" id="imie">
czyli powtarzać dwukrotnie nazwy pola. Dlatego podałem sposób na dostanie się do elementu formularza znając tylko jego "name".



Jeśli chodzi o sprawę z document.all to sprawa jest prosta. Załóżmy, że jest sobie strona z następującymi fragmentami kodu:
Kod
<p id="test">Witam na stronie</p>
<img name="test" src="buzia.png" alt=":-)" />
<form name="test" action="" method="get"></form>
Oczywiście wszystko jest poprawne, bo W3C zabrania jedynie nadawania takich samych wartości "id".


Do czego teraz biedna przeglądarka ma się odnieść widząc kod w postaci:
Kod
document.test.style.display="none";
? :-)


http://osiolki.net/faq/documentall
http://msdn.microsoft.com/workshop/author/...ew.asp#benefits
gekon
Zajec w przykładzie mogłeś użyć innego elementu niż form, przecież w XHTML 1.0 Strict nie ma atrybutu "name" dla formularzy smile.gif
LBO
eeee... a co z getElementByName()?
revyag
Cytat
getElementByName()

Nie ma takiej funkcji snitch.gif
getElementsByName() - zwróci listę elementów o określonym atrybucie name, AFAIR nie ma funkcji która da dostęp do elementu przez jego name.
TomASS
Cytat
Zwraca listę elementów w dokumencie o żądanym atrybucie name.


getElementsByName
gekon
Cytat(revyag)
getElementsByName() - zwróci listę elementów o określonym atrybucie name, AFAIR nie ma funkcji która da dostęp do elementu przez jego name.

@revyag: trochę sie zamotałeś smile.gif Jak już zdążyliście zauwazyć jest metoda getElementsByName, a także getElementsByTagName.
revyag
Cytat
@revyag: trochę sie zamotałeś smile.gif Jak już zdążyliście zauwazyć jest metoda getElementsByName, a także getElementsByTagName.

W czym niby zamotałem questionmark.gif Nie za bardzo rozumiem. No wiem że jest ta funkcja, ale co to ma wspólnego z moją wypowiedzią ?
gekon
Powtórzenie: name; robi się OT.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.