2011-02-06 71 views
1

這聽起來像是一個奇怪的問題,但希望有一個答案。當選擇或文本框通過jQuery填充時檢測到

我在我的HTML頁面中有一些選擇和文本框。這些框會在頁面加載後的某個時候填充,我無法控制它們;我只是知道,最終在頁面加載後,框將被填充。

有什麼辦法可以創建一個偵聽器,可以檢測到這些填充時?

我一直在使用setInterval/clearInterval,但我希望jQuery有一種「傾聽」的方式來填充這些內容。

想法?

+0

他們是否從用戶或代碼獲取價值? – xzyfer 2011-02-06 00:58:57

+0

是否爲您做了事件更改/加密工作?另外,你沒有控制填充字段的腳本? – Colum 2011-02-06 01:03:53

回答

1

如果它們的值由用戶設置,您可以聽取更改事件。

$(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() { 
    .... 
}); 
0

你可以使用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動作,那麼上述內容應該可以工作,如果它來自用戶的操作,那麼您只需要聽取inputs(後面的部分$('input').change())上的change()事件。