0

我有一个文本框,我想在文本更改时发出警报,但现在问题是,当我写 11 时,它会显示两次警报。

    function onChangeText(){

       alert("Please show update buttons"); 

    }
4

6 回答 6

1

你可以试试这个:我的小提琴

<input type="text" onchange="alert('Hello');">​
于 2012-10-12T05:30:37.237 回答
0

尝试 onkey up 而不是 onchange

<input type="text" onkeyup="onChangeText()" />
于 2012-10-12T05:34:07.260 回答
0

你可以调用你的javascriptonblur而不是onchangelike

<input type="text" onblur="onChangeText();">​
于 2012-10-12T05:34:41.050 回答
0

试试这个:

<input type="text" onblur="if(this.value != '') onChangeText();">​
于 2012-10-12T05:42:11.573 回答
0

你可以试试focusout

看看这个小提琴

于 2012-10-12T05:46:27.447 回答
0

另一种方法是创建全局超时变量,将侦听器绑定到输入事件。回调函数将重置超时并检查上一个事件是否在指定时间之前发生(例如 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);
});​
于 2012-10-12T05:54:42.843 回答