2010-09-22 79 views

回答

2

隱藏字段是隱藏的,用戶不會看到它來更改某些內容。只有頁面作者/腳本可以更改其值,如果是這種情況,則可以使用change事件來跟蹤更改。

$('#hidden_id').change(function(){ 
    alert('Changed Value: ' + $(this).val()); 
}); 
+2

快速測試顯示這是[not working](http://jsfiddle.net/3BrxY/);) – Reigel 2010-09-22 07:36:58

+1

@Reigel:這是因爲通過編程方式更改輸入的值不會觸發更改事件。這就是爲什麼我總是把它寫成'$('#elem')。val(new_val).trigger('change')'。 http://jsfiddle.net/nS4Jt/1/ – mpen 2010-09-22 07:39:05

+0

@Mark - 這是我的觀點。 ;) – Reigel 2010-09-22 07:42:51

0

'change()'事件處理函數不適用於隱藏的輸入字段。你可以做什麼,而不是沿着這些線(未經測試!):

function hiddenOnChange(elem, function) { 
    if ($(elem).val()!=$(elem).getAttr('oldVal')) { 
     function; 
    } 
    $(elem).attr('oldVal', $(elem).val()); 

    window.setTimeout(function(){hiddenOnchange(elem, function);}, 100); 
} 

使用您的隱藏輸入字段和onchange函數調用此函數。它通過比較字段的「當前」值與先前存儲的值來重新創建onchange函數。如果沒有任何變化,它會在100毫秒內重新檢查;如果有什麼變化,它會執行你的功能(我希望;))

希望這會有所幫助。