我有一個輸入文本,需要在文本(值)更改時檢測。 該值可以通過兩種方式更改:如何檢測輸入文本中的值何時被腳本更改?
- 允許用戶在其中寫入。
- 用戶點擊一個按鈕,運行一個jQuery事件並用 結果填充它。
對於我使用keyup
解決的項目1,但對於項目2我不知道如何檢測文本何時更改。 我嘗試change()
但不起作用。
我有一個輸入文本,需要在文本(值)更改時檢測。 該值可以通過兩種方式更改:如何檢測輸入文本中的值何時被腳本更改?
對於我使用keyup
解決的項目1,但對於項目2我不知道如何檢測文本何時更改。 我嘗試change()
但不起作用。
您可以在填寫輸入的函數中使用.trigger()
。
$("#idOfButton").click(function() {
//do some stuff
//fill input
$("#edit").val("new stuff!").triggerHandler("keyup"); //<--Trigger keyup event
});
爲item2和item1鍵入處理程序添加事件處理程序change()
,觸發item2 change()
事件。簡單的那樣...
「運行jQuery的事件,並用結果填充它。」
你可以從你的jquery事件調用另一個函數。
$('sel').click(function(){
textedited(); // call your new function.
});
您可以創建,檢查是否輸入字段的值在每一個場合(用戶輸入或點擊按鈕)發生了變化的時間間隔:
var oldValue = $('#field').val();
var newValue = oldValue;
var checkInputFieldInterval = window.setInterval(function() {
newValue = $('#field').val();
if (newValue !== oldValue) {
// VALUE CHANGED, DO STUFF
oldValue = newValue;
}
}, 100);
注意的「100」是區間以毫秒爲單位。您可以在此頁面找到有關setInterval()方法的詳細信息http://www.w3schools.com/jsref/met_win_setinterval.asp
你可以做...
$('.name').on('keyup', function(){
/* I'll run when the button is clicked or there's a keyup event. */
})
$('button').on('click', function(){
$('.name').val('Bill').trigger('keyup');
})
這裏有一個快速演示:http://jsbin.com/uteceb/1/edit
爲什麼不直接調用額外的代碼後填充輸入?你可以使用'$(「#id」)。trigger(「keyup」);' – Archer
他可能使用了一些庫/小部件... –
你可以更具體一點,腳本響應什麼樣的(jQuery)事件, _result_是否已創建並同步填充? –