ASP.NET是罪魁禍首。我沒有在我的問題中提到它,因爲我不認爲它是相關的,但是你去了。有問題的控件與ASP.NET Validator控件相關聯。在檢查時,控制元素的「onchange」被設置爲一個稱爲「ValidatorOnChange」的函數。不知何故,在這些控件上調用jQuery的「change()」會導致上述不良行爲。
我工作圍繞這一問題通過我自己的事件處理程序 - 這可能不是每個人的選擇,但我不得不在加載庫提供此功能,所以我用它和網頁的工作現在。
新的代碼如下所示:
var el = document.getElementById('someControlId');
el.onchange = appendFunction(el.onchange, nameOfHandlerFunction);
這裏是萬一方法本身這可以幫助別人。
function appendFunction(fn1, fn2) {
var result;
// if neither arguments are functions, return an empty function.
// if only one argument is a function, return that.
if (typeof (fn1) !== 'function' && typeof (fn2) !== 'function') {
result = function() { return; };
}
else if (typeof (fn1) === 'function' && typeof (fn2) !== 'function') {
result = fn1;
}
else if (typeof (fn1) !== 'function' && typeof (fn2) === 'function') {
result = fn2;
}
else {
result = function() {
fn1();
fn2();
}
}
return result;
}
什麼瀏覽器你看到這個?你能舉一個例子到http://jsfiddle.net嗎? – 2011-04-12 15:36:29
那麼,這個小提琴第一次工作:http://jsfiddle.net/tPzqf/所以它可能是你的結局。您應該在這裏發佈您的代碼 – JohnP 2011-04-12 15:37:21
您的示例在我正在開發的瀏覽器(IE8)中正常工作。 jsfiddle是一個非常方便的網站!讓我在代碼中進行更多的挖掘,看看我能弄清楚什麼。 – 2011-04-12 15:45:10