mam sktypt, który gdzieś znalazłem na tym forum do sprawdzania pustych pól formularza.
Działa fajnie, ale chciałbym dodać do niego inne możliwości.
<script type="text/javascript" language="JavaScript"> var ClassName2 = "val"; //nazwa klasy elementów, które mają być poddane walidacji var FocusColor2 = "#FF3366"; //kolor podświetlenia niewypełnionego pola function checkForm2(theFormm) { var error = false; var inputfields = document.getElementsByTagName("input"); for(var x = 0 ; x < inputfields.length ; x++ ) { if(inputfields[x].getAttribute("class") == ClassName2) { if (inputfields[x].value.length == 0) { inputfields[x].style.background = FocusColor2; error = true; } else { inputfields[x].style.background = ''; } } } if(error == true) { alert("Wypełnić podświetlone pola!"); return false; } } </script>
<FORM action="przeslij.php" method="post" name=formularzedycja onsubmit="return checkForm2(this)"> <INPUT type="text" style="width: 147px;" name="imie" class="val"> <INPUT type="text" style="width: 147px;" name="nazwisko" class="val"> <INPUT type="text" style="width: 147px;" name="kwota" class="val"> </form>
Mianowicie np. chciałbym, aby skrypt dodatkowo sprawdzał czy dane pole zawiera liczbę i nie ma innych znaków niepożądanych i mam coś takiego po połączeniu dwóch skryptów:
<script type="text/javascript" language="JavaScript"> var ClassName2 = "val2"; //nazwa klasy elementów, które mają być poddane walidacji var FocusColor2 = "#FF3366"; //kolor podświetlenia niewypełnionego pola function checkForm2(theFormm) { var error = false; var inputfields = document.getElementsByTagName("input"); for(var x = 0 ; x < inputfields.length ; x++ ) { if(inputfields[x].getAttribute("class") == ClassName2) { if (inputfields[x].value.length == 0) { inputfields[x].style.background = FocusColor2; error = true; } else { inputfields[x].style.background = ''; } } } if(error == true) { alert("Aby dokonać edycji klienta musisz wypełnić podświetlone pola!"); return false; } var reg = /^-?\d+(([,\.]?\d+)|())$/; if(reg.test(document.forms['formularzedycja'].kwota.value)) { return true; } else { alert("Wpisano zły format kwoty!\nPrawidłowy format to np. 9.99"); return false; } } </script>
<FORM action="przeslij.php" method="post" name=formularzedycja onsubmit="return checkForm2(this)"> <INPUT type="text" style="width: 147px;" name="imie" class="val"> <INPUT type="text" style="width: 147px;" name="nazwisko" class="val"> <INPUT type="text" style="width: 147px;" name="kwota" class="val"> </form>
Moja wersja działa poprawnie jednak nie tak jakbym chciał. Tzn. nie jest ona połączona ze skryptem do sprawdzania pustych pól formularza... Chciałbym, aby sprawdzanie kwoty był wykonane i również podświetliło pole, które jest źle wypełnione a teraz po wpisaniu złych danych w input wyskakuje tylko sam alert bez podświetlenia pola.
Chyba musiałoby być to w tej samej pętli co sprawdzanie pól formularza. Jak dodawać kolejne akcje do sprawdzania określonych pól formularza za jednym zamachem w spoób poprawny. Robiłem to metodą prób i błędów więc udało mi się zrobić tak jak teraz to funkcjonuje.