我有一個城市的SVG地圖,當點擊時,在我的窗體中創建一個div中的隱藏元素。jQuery驗證:在提交之前刪除驗證後的元素?
我正在使用jQuery Validation Plugin來驗證我的表單。
爲了確保用戶點擊了地圖的一個區域,我想在隱藏元素的正常隱藏區域內創建一個虛擬隱藏元素,並在其上放置驗證規則。我編寫了自己的驗證規則來檢查隱藏元素的數量(表明用戶已經在地圖上的某處點擊了)。這條規則是這樣的:
$.validator.methods.zones = function (value, element, param) {
return ($('#search_form #zone-selectors input').length > 1); // 1 instead of 0 to account for the dummy element
};
<div id="zone-selectors">
<input type="hidden" name="dummy">
</div>
但是,我不能允許該虛擬元素與表單的其餘部分一起提交;我需要在表單被驗證之後但在表單提交之前刪除它。當然,我想用submitHandler
選項validate()
:
// ...
submitHandler: function(form) {
$(form).find('input[name=dummy]').remove();
$(form).submit();
},
// ...
...但是這似乎產生了一個無限循環,和我的瀏覽器超時的腳本。我究竟做錯了什麼?
現在表格完全不提交...?但隱藏的元素被刪除,所以我知道'submitHandler'正在被調用。 – neezer 2010-09-09 15:12:08
@neezer - 表單是否有動作?或者你想通過ajax提交? – 2010-09-09 15:16:10
@nick它有一個動作。我想要一個正常的提交,而不是一個Ajax提交。 – neezer 2010-09-09 15:34:37