我有一个文本框,我想在文本更改时发出警报,但现在问题是,当我写 11 时,它会显示两次警报。
function onChangeText(){
alert("Please show update buttons");
}
我有一个文本框,我想在文本更改时发出警报,但现在问题是,当我写 11 时,它会显示两次警报。
function onChangeText(){
alert("Please show update buttons");
}
你可以试试这个:我的小提琴
<input type="text" onchange="alert('Hello');">
尝试 onkey up 而不是 onchange
<input type="text" onkeyup="onChangeText()" />
你可以调用你的javascriptonblur
而不是onchange
like
<input type="text" onblur="onChangeText();">
试试这个:
<input type="text" onblur="if(this.value != '') onChangeText();">
你可以试试focusout
。
看看这个小提琴
另一种方法是创建全局超时变量,将侦听器绑定到输入事件。回调函数将重置超时并检查上一个事件是否在指定时间之前发生(例如 500 毫秒)。
您可能已经注意到,带有onchange的示例在单击另一个元素后执行。这是更改事件的默认行为。输入行为不同。
示例:http: //jsfiddle.net/Klaster_1/3byVb/
var timeout;
$("input").on("input", function(event) {
var value = event.target.value;
clearTimeout(timeout);
timeout=setTimeout(function(){
if(value.length){
alert(value);
}
},500);
});