這聽起來像是一個奇怪的問題,但希望有一個答案。當選擇或文本框通過jQuery填充時檢測到
我在我的HTML頁面中有一些選擇和文本框。這些框會在頁面加載後的某個時候填充,我無法控制它們;我只是知道,最終在頁面加載後,框將被填充。
有什麼辦法可以創建一個偵聽器,可以檢測到這些填充時?
我一直在使用setInterval/clearInterval,但我希望jQuery有一種「傾聽」的方式來填充這些內容。
想法?
這聽起來像是一個奇怪的問題,但希望有一個答案。當選擇或文本框通過jQuery填充時檢測到
我在我的HTML頁面中有一些選擇和文本框。這些框會在頁面加載後的某個時候填充,我無法控制它們;我只是知道,最終在頁面加載後,框將被填充。
有什麼辦法可以創建一個偵聽器,可以檢測到這些填充時?
我一直在使用setInterval/clearInterval,但我希望jQuery有一種「傾聽」的方式來填充這些內容。
想法?
如果它們的值由用戶設置,您可以聽取更改事件。
$(document).ready(function() {
$('input, select').change(function() {
var $changedElement = $(this);
if($changedElement.val() != '') {
// code to keep track of which elements are checked..
}
});
});
如果元素被頁面加載後添加到頁面從腳本,您將需要使用live
而非change
$('input, select').live('change' function() {
....
});
你可以使用trigger()
,好了,觸發的change
事件和change()
收聽change
事件:
$(document).ready(
function(){
// basically put .trigger('change') after whatever function populates the inputs
$('form input').populateInputFunction().trigger('change');
$('input').change(
function(){
// do whatever you want to do when the inputs are changed
});
});
沒有看到你的代碼,很難說如何在你的頁面中使用它們,但希望上面的例子應該提供一些見解。
從你的問題來看,它也是模糊不清的,從哪裏來的變化。如果它來自您自己的jQuery動作,那麼上述內容應該可以工作,如果它來自用戶的操作,那麼您只需要聽取input
s(後面的部分$('input').change()
)上的change()
事件。
他們是否從用戶或代碼獲取價值? – xzyfer 2011-02-06 00:58:57
是否爲您做了事件更改/加密工作?另外,你沒有控制填充字段的腳本? – Colum 2011-02-06 01:03:53