2013-01-08 27 views
0

嘿,这行代码的人我启用jQuery验证器来验证某些表单字段。如何在表单中的某个按钮被点击时绕过jQuery表单验证器

<script> 
$(function() 
{ 
    $("#date").datepicker({autoSize: true, dateFormat: 'yy/mm/dd', showAnim: 'show' }); 
}); 
$(function() 
{ 
    $("#starttime, #stoptime, #starttime2, #stoptime2, #starttime3, #stoptime3, #starttime4, #stoptime4").timepicker({autoSize: false, showAnim: 'show' }); 
}); 
</script> 

<script> 
    $(function() { 
     $("#productionlogform").validate({ 
      rules: { 
       date: { 
        required: true, 
       }, 
       starttime: { 
        required: true, 
       }, 
       stoptime: { 
        required: true, 
       } 
      } 
     }); 
    }); 
</script> 

正如您所见,日期,开始时间和停止时间是必需的,因此表单在设置之前无法发布。

现在,这是很烦人的,如果我在表单中有一个删除按钮...

任何想法是如何让该按钮绕过验证规则?

+1

使用validationEventTrigger。请参考此网址:http://posabsolute.github.com/jQuery-Validation-Engine/#options/validationeventtrigger –

+0

谢谢你现在就去寻找它。 –

回答

1

此外,别忘了在服务器端进行验证。永远不要依赖客户端验证来防止人们输入恶意/恶意数据。

0

对不起Bhavik Shah,我不能接受你的回答,但无论如何,validationEventTrigger完成了这项工作。改写了我的代码,看起来像这样:

<script> 
    $(function() { 
    $("#deleteproductionlog").click(function() { 
     $("#productionlogform").validate().cancelSubmit = true; 
    }); 
    $("#newproductionlog").click(function() { 
     $("#productionlogform").validate().cancelSubmit = true; 
    });   
     $("#productionlogform").validate({ 
      rules: { 
       date: { 
        required: true, 
       }, 
       starttime: { 
        required: true, 
       }, 
       stoptime: { 
        required: true, 
       } 
      }, 
     });  
    }); 
</script> 

命名按钮“deleteproductionlog”和“newproductionlog”会跳过形式,被称为“productionlogform”的验证。

相关问题