我正在使用Web驱动程序填写表单,并且需要通过使用browser.execute_script()
将隐藏表单字段插入到DOM中来绕过两个表单字段。禁用jQuery验证插件
但是我也需要禁用现有的验证方法才能提交表单。该表单使用jQuery验证。任何人都可以建议如何禁用部分或全部jQuery验证?
我尝试使用以下,但我得到的错误TypeError: d is undefined
b.execute_script('
$("firstMemorableCharacter").rules("remove");
$("secondMemorableCharacter").rules("remove");
')
哪里firstMemorableCharacter
是已连接的验证规则的形式字段的名称。
验证被设定为利用jQuery验证如下:(上图所示的规则是我需要禁用的)
with($.validator) {
addMethod(...);
setDefaults({
....
messages: { },
rules: {
firstMemorableCharacter: {
radioHasValue: true
},
secondMemorableCharacter: {
radioHasValue: true
}
}
});
预先
感谢。
UPDATE:
按照这个帖子,How do I remove jQuery validation from a form?,我试图提交使用HTML DOM(绕过jQuery的)使用$("#form-id")[0].submit();
形式。然而,这不起作用 - 似乎在jQuery中还有一些额外的JavaScript需要执行,以便表单正确提交。
因此,我需要一种方式来明确禁用jQuery Validate中的这两个规则,而不是禁用整个jQuery或jQuery Validate。
那岂不是更容易完成正常的形式(即像一个普通的用户),而不是黑客这一页? – 2013-04-05 12:45:26
@JustinKo问题是,它不可能正常完成其中一个字段,因为它是一个自定义保存框元素。如果我改变元素(在这种情况下,输入单选元素),我得到了错误,我试图访问一个不可见的HTML元素。所以我认为插入一个隐藏的表单域会更容易。 – Imme22009 2013-04-05 13:32:07
该元素的HTML是这样的: