2011-10-24 47 views
4

我有一個文本輸入字段,我只能讀取,因此用戶無法輸入。儘管我用jquery更新了它的值。所以基本上我想要一個事件觸發,當它的價值改變使用jQuery。以下是輸入標記和jquery標記的示例。如果使用jQuery更改值,jquery change()不起作用

<input type="text" readonly="readonly" id="textinput" /> 

$('#textinput').change(function() { 
    alert("It's Changed!"); 
}); 
+0

我不認爲有這樣的事件,因爲假定程序員知道他何時更改DOM並可以同時顯式調用一個函數是合理的。 – Blazemonger

回答

17

您將無法做到這一點。通過代碼進行的更改不會觸發事件。您可以直接在代碼中直接撥打change

事情是這樣的:

// do stuff 
$('#textinput').val("something").change(); 
3

我認爲'change'事件只在文本框失去焦點時纔會觸發。因此,在你的代碼修改完畢你需要做的 -

$('#textinput').trigger('change') 

演示 - http://jsfiddle.net/upS2x/1/

2

由於它是一個只讀輸入,你是不是能夠把它的類型,因此,變更,KEYUP,KeyDown和按鍵不會關於該輸入工作。

也就是說,您應該將事件應用於確實會更改輸入文本的函數。因此,如果input1更改文本輸入中的文本:

$("#input1").keyup(function(){ 
    $("#textinput").val($(this).val()); 
}); 

我希望有所幫助。