禁用jQuery Validate插件

我正在使用Web驱动程序填写表单,并且需要通过使用browser.execute_script()将隐藏的表单字段插入DOM来绕过两个表单字段。

但是,我还需要禁用现有的validation方法才能提交表单。 表单使用jQuery Validate。 任何人都可以建议如何禁用部分或全部jQuery Validate?

我尝试使用以下,但我收到错误TypeError: d is undefined

 b.execute_script(' $("firstMemorableCharacter").rules("remove"); $("secondMemorableCharacter").rules("remove"); ') 

其中firstMemorableCharacter是附加validation规则的表单字段的名称。

validation是使用jQuery Validate设置的,如下所示:

 with($.validator) { addMethod(...); setDefaults({ .... messages: { }, rules: { firstMemorableCharacter: { radioHasValue: true }, secondMemorableCharacter: { radioHasValue: true } } }); 

(上面显示的规则是我需要禁用的规则。)

提前致谢。

更新:

在这篇文章之后, 如何从表单中删除jQueryvalidation? ,我尝试使用$("#form-id")[0].submit();使用HTML DOM(绕过jQuery)提交表单$("#form-id")[0].submit(); 。 但是,这不起作用 – 似乎jQuery中有一些额外的JavaScript需要执行才能正确提交表单。

因此,我需要一种在jQuery Validate中专门禁用这两个规则的方法,而不是禁用整个jQuery或jQuery Validate。

任何人都可以建议如何禁用部分或全部JQuery Validator?

初始化后,您无法禁用它的任何部分。 但是,您可以使用.rules()方法动态操作规则,如您已经猜到的那样。

只需确保在.rules() 之后的某个时间调用.rules()方法,否则它将失败。

看到这个简单的演示: http : //jsfiddle.net/qdjMS/


您的代码中存在语法错误。

 $("firstMemorableCharacter").rules("remove"); $("secondMemorableCharacter").rules("remove"); 

请注意,您的两个jQuery选择器毫无意义。

如果你试图定位一个id ,那么你需要一个#在前面……

 $("#firstMemorableCharacter").rules("remove"); $("#secondMemorableCharacter").rules("remove"); 

从你的评论中,我也注意到你的元素包含id="firstMemorableCharacter1" ,所以你还需要拼写完全相同的id

 $("#firstMemorableCharacter1").rules("remove"); 

否则,您可以按name定位它们,如我的演示中所示…

 $("[name='firstMemorableCharacter']").rules("remove"); $("[name='secondMemorableCharacter']").rules("remove");