napisałem sobie prosty skrypt do walidacji danych, lecz chciał bym zmienić pewną rzecz.
Mianowicie, wysłanie pustego form powoduje ustawienie komunikatów błędów do każdego pola.
Po zmianie opcji /wypełnieniu pola/ chciał bym, aby dany komunikat wracał automatycznie do poprzedniego stanu a nie dopiero po ponownym wysłaniu formatki.
Na chwilę obecną udało mi się zrobić do dla pola RADIO lecz nie wychodzi mi dla pól SELECT
Dodatkowo nie wiem gdzie mam błąd, ponieważ przy dwóch różnych polach RADIO, komunikat znika tylko z pierwszego z drugiego już nie(dopiero po wysyłce formatki).
Poniżej jest JS dla jednego radio i 2 select, do drugiej formatki mam zrobiony JS z dla dwóch różnych RADIO.
Proszę o pomoc.
$(document).ready(function(){ var form = $("#formID"); var radio = $("#sex"); var radioInfo = $(".sex"); var select1 = $("#age"); var select1Info = $(".age"); var select2 = $("#city"); var select2Info = $(".city"); radio.blur(validateRadio); select1.blur(validateSelect1); select2.blur(validateSelect2); radio.keyup(validateRadio); select1.keyup(validateSelect1); select2.keyup(validateSelect2); radio.change(validateRadio); select1.change(validateSelect1); select2.change(validateSelect2); form.submit(function(){ if(validateRadio() & validateSelect1() & validateSelect2()) return true else return false; }); function validateRadio(){ if($("input[name='sex']:checked").val() == null){ radioInfo.addClass("error"); return false; } else { radioInfo.removeClass("error"); return true; } } function validateSelect1(){ if(select1.val().length < 1 ){ select1Info.addClass("error"); return false; } else { select1Info.removeClass("error"); return true; } } function validateSelect2(){ if(select2.val().length < 1 ){ select2Info.addClass("error"); return false; } else { select2Info.removeClass("error"); return true; } } });