2
我目前使用jquery validate 1.8.1,我的目標瀏覽器是IE7。我在主頁上有一個表單,表單元素通過AJAX動態注入。有一個下拉框管理表單中的元素,表單會根據使用此下拉框選擇的內容提交不同的內容。當解除綁定驗證表單時提交事件
$('some_pane').load('/remote_location.html', ...);
因此,我需要動態實例JQuery驗證:
var myValidator;
myValidator = $('#myForm').validate();
myValidator.settings.submitHandler = myFormSubmitHandler;
$('#input1inMyForm').rules('add', .....)
一切都很好,當它動態地加載用於在頁面加載的第一次,當表單提交,myFormSubmitHandler被稱爲確切地說一旦。
但是,當用戶在下拉框中選擇另一個值時,會出現問題,該值會動態地將另一組元素插入到窗體中,從而實例化新的驗證程序。
我做了正確的實例化一個新的驗證之前清理和它的作品在Firefox和Chrome
$('#myForm').data('validator', null);
$('#myForm').unbind('submit');
我已經做StackOverflow上廣泛的搜索,但我不能拿出一個可行的解決方案,我可以總結關於IE和jQuery
幾個關鍵點- 你只能解綁的綁定與jQuery.bind在IE
- 事件存儲在事件屬性,我可以看到,我不能REM事件覆蓋之前的提交事件。每次我實例化一個新的驗證器時,一個額外的onsubmit事件被附加到表單上。
這些都是清理我都試過了,但不工作的IE7對我來說
$('#myForm').removeAttr('onsubmit');
if(document.detachEvent) {
document.getElementById('myForm').detachEvent('onsubmit', myFormSubmitHandler);
}
大加讚賞。