表单仍然在验证失败JS后提交

时间:2012-07-17 20:37:57

标签: javascript jquery html

我有一个表单,我试图验证具有相同类的字段。需要

<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;
            }
        });
 });   
});

我做错了什么?

3 个答案:

答案 0 :(得分: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;
    } 
}); 

答案 1 :(得分: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;
    });   
});

编辑:Woops,为时已晚

答案 2 :(得分:0)

     <script type="text/javascript">
         $('#submitRegister').click( function(){
         var validation =  $('#connect').vValidator('validate');
         Window.alert("hii");
         });
      </script>