我正在使用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是這樣的: