1
我想創建一個屬性(例如markChanges ='true'),它會自動檢測輸入值是否已經改變,但只有當該輸入未被聚焦時。捕捉輸入值的變化,當它沒有被聚焦
我將如何做到這一點(該值可以從課程的JS代碼更改)?
我想創建一個屬性(例如markChanges ='true'),它會自動檢測輸入值是否已經改變,但只有當該輸入未被聚焦時。捕捉輸入值的變化,當它沒有被聚焦
我將如何做到這一點(該值可以從課程的JS代碼更改)?
似乎唯一的解決辦法是輪詢,這意味着你將不得不使用setInterval()
。例如,請查看this fiddle。代碼是
function detectChange(input, interval) {
var previous = "";
setInterval(function() {
var val = $(input).val();
if ( val != previous) {
previous = val;
alert("Input has changed");
}
}, interval);
}
detectChange("input", 100);
setTimeout(function() {
$("input").val("some value!");
}, 4000);
沒有辦法檢測到更改沒有投票的價值?!必須有更優雅的方式......不是嗎? –
當您動態更改該值時不適用。你唯一擁有的是'.change()',但是它基於'focus'。這就是說,必須有一些東西改變了你的輸入的價值,這意味着你可以委託工作到那個功能,而不是讓輸入檢測到它自己的改變。 – vinceh
是的,但是因爲我有很多輸入改變了其他輸入的值,所以它會讓我的代碼變得相當混亂。當你說改變是基於焦點時,你的意思是什麼? –