2012-07-18 10 views
8

Sprawdzanie poprawności JQuery działa tylko dla pierwszego elementu w przesłanym formularzu, sprawdzanie poprawności nie sprawdzi numeru dla drugiego. Potrzebujesz dowiedzieć się, czego brakuje. Zamień dane wejściowe dla text1 i date2, sprawdzanie poprawności nadal działa dla pierwszego.Walidacja JQuery działa tylko dla pierwszego elementu w przesłanym formularzu. [zamierza zatwierdzić wszystkie]

<!DOCTYPE HTML> 
<html lang="en-US"> 
<head><title> 
</title> 
<script type='text/javascript' src='http://code.jquery.com/jquery-1.5.1.min.js'></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.js"></script> 
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.5.5/jquery.validate.min.js"></script> 
<script type="text/javascript" src="http://jquery-multifile-plugin.googlecode.com/svn-history/r16/trunk/jquery.MetaData.js"></script> 
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/themes/base/jquery-ui.css"/> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#form1").validate(); 

     $(".date").datepicker({ 
      changeYear: true, 
      dateFormat: 'dd/mm/yy', 
      minDate: new Date('1990/01/01'), 
      maxDate: '30Y' 
     }); 
    }); 
    function test() { 
     alert(document.getElementById("datetext").getAttribute("must")); 
    }   
</script> 
</head> 
<body> 
     <form method="post" action="WebForm1.aspx" id="form1"> 
      Text:<font color="red">* </font><input id="Text1" class="lvl {required:true,messages:{required:'blank not allowed.'}}" /><br /> 
      Select Date2:<font color="red">* </font><input id="date2" class="date {required:true,messages:{required:'Required:Need to enter 2 date.'}}" readonly="true" /><br /> 
      <input type="submit" value="Submit"/> 
     </form> 
</body> 
</html> 

Odpowiedz

27

Pamiętaj, aby podać atrybut name do wejść. Sądzę, że używa on atrybutu name do zbudowania listy pól sprawdzania poprawności, a ponieważ nie określono atrybutu name, walidacja jquery uważa, że ​​drugie pole ma taką samą nazwę jak pierwsza.

Na przykład <input id="Text1" name="Text1" />

+0

Dzięki, miałem ten problem i byliśmy zakłopotany, choć nie wiem, dlaczego nie wystarczy użyć elementu zamiast pola Nazwa. – bigcakes

+0

Nie masz pojęcia, jak bardzo czuję ulgę, znajdując ten post. Uderzyłem głową o ścianę, próbując ustalić, dlaczego moja procedura sprawdzania poprawności nie działa prawidłowo i podświetla tylko pierwszy nieprawidłowy element. oficjalne dokumenty sprawdzania poprawności jquery są bzdurne, nie miały pojęcia, że ​​problem można łatwo rozwiązać, dodając nazwę attr, lmao. – Nexus

+2

Ja też straciłem trochę czasu. Proszę oznaczyć tę odpowiedź jako zaakceptowaną. – Raffo

Powiązane problemy