Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js]sprawdza dane tylko jeden raz
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
raak07
  1.  
  2. function liczg()
  3. {
  4. if (document.getElementById('godz').value > 23 ) {
  5. window.alert("błąd godziny");
  6. document.getElementById('godz').value=""; }
  7.  
  8. }
  9.  
  10. function liczm()
  11. {
  12. if (document.getElementById('min').value > 59 ) {
  13. window.alert("błąd minut");
  14. document.getElementById('min').value=""; }
  15. }
  16.  
  17.  
  18. <input name="godz" type="text" class="INPUT" maxlength="2" onkeypress="if (event.keyCode < 48 || event.keyCode > 57) event.returnValue = false;" onChange="liczg();" />&nbsp;&nbsp;<strong>:</strong>&nbsp;
  19. <input name="min" type="text" class="INPUT" maxlength="2" onkeypress="if (event.keyCode < 48 || event.keyCode > 57) event.returnValue = false;" onChange="liczm()" />

jestem zielony z js i to moj pierwszy skrypt prosze o wyrozumialosc i pomoc
- poprawnosc wprowadzonych danych jest sprawdzana tylko raz
- jak zrobic by po wyswietleniu komunikatu o bledzie kursor ustawil sie
w polu gdzie byl blad
pozdrawiam
lopik
http://developer.mozilla.org/pl/docs/DOM:element.focus

Czyli w Twoim kodzie:

- pierwsza funkcja:
po wywołaniu metody alert() napisz:
document.getElementById('godz').focus();

- w drugiej funkcji tak samo
// alert
document.getElementById('min').focus();
raak07
dzieki za zainteresowanie moim problemem
w tresci input dopisalem id="godz" (id="min")
i nadal jest tak jak bylo
czyli dane sa sprawdzane tylko za pierwszym razem
a "document.getElementById('godz').focus();" nie ustawia kursora
w wybranym polu
pozdrawiam
slammer
po pierwsze pamiętaj, że getElementById można używać gdy strona jest załadowana w całości... po drugie onChange zadziała gdy zatwierdzisz wartość klikając poza pole input! Lepiej zrobic coś takiego:
  1.  
  2.  
  3. liczg = function(oForm) {
  4. if (oForm.godz.value > 23 ) {
  5. window.alert("błąd godziny");
  6. oForm.godz.value = "";
  7. }
  8. }
  9.  
  10. liczm = function(oForm) {
  11. if (oForm.min.value > 59 ) {
  12. window.alert("błąd minut");
  13. oForm.min.value="";
  14. }
  15. }
  16.  
  17. </script>
  18.  
  19. <form>
  20. <input name="godz" type="text" class="INPUT" maxlength="2" onkeypress="if (event.keyCode < 48 || event.keyCode > 57) event.returnValue = false;" onkeyup="liczg(this.form);" />&nbsp;&nbsp;<strong>:</strong>&nbsp;
  21. <input name="min" type="text" class="INPUT" maxlength="2" onkeypress="if (event.keyCode < 48 || event.keyCode > 57) event.returnValue = false;" onkeyup="liczm(this.form);" />
  22. </form>
raak07
dzieki
dziala
musze to przetrawic
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.