2

フォームがあり、同じクラスのフィールドを検証しようとしています。必要

<form id="HotelBooking" method="post" action="#">
<input type="text" class="required"  name="vardas" />
<input type="text" class="required"  name="pav" />
<input type="text" class="required"  name="tel" />
<input type="submit"  name="sb"  value="Tvirtinti" onclick="tikrinti();"/>
</form>

JS コードは最初のフィールドで機能し、エラーが表示されますが、フォームは引き続き送信され、フィールドがリセットされます。

$(document).ready(function() { 
  $('#HotelBooking').submit(function () {
  $(".required").each(function(){
            if($(this).val().length == 0)
            {
               alert('Please Enter your value');
               $(this).focus(); 
               return false;
            }
        });
 });   
});

私が間違っていることは何ですか?

4

3 に答える 3

4

あなたはのreturn false外側を置くべきですeach()

$('#HotelBooking').submit(function () {
    var errors = 0
    $(".required").each(function(){
        if( $.trim($(this).val()).length == 0) { // make sure that there is no extra whitespace
           errors++ 
        }
    });
    if (errors > 0) {
       alert('please Enter your value for ' +errors+ 'remaining fields')
       return false;
    } 
}); 
于 2012-07-17T20:39:59.943 に答える
2

問題は、関数ではなく、関数falseから戻っていることです。each()submit()

ここに修正があります:

$(document).ready(function () {
    $('#HotelBooking').submit(function () {
        var valid = true;

        $('.required').each(function () {
            if ($(this).val().length == 0) {
                alert('Please Enter your value');
                $(this).focus();

                valid = false;
            }
        });

        return valid;
    });   
});

編集:おっと、遅すぎます

于 2012-07-17T20:42:25.197 に答える
0
     <script type="text/javascript">
         $('#submitRegister').click( function(){
         var validation =  $('#connect').vValidator('validate');
         Window.alert("hii");
         });
      </script>
于 2014-04-10T09:08:08.970 に答える