0

テキストボックスがあり、テキストが変更されたときにアラートが必要でしたが、11と書くと、2回アラートが表示されるという問題があります。

    function onChangeText(){

       alert("Please show update buttons"); 

    }
4

6 に答える 6

1

あなたはこれを試すことができます:私のフィドル

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

別の方法は、グローバルタイムアウト変数を作成し、リスナーを入力イベントにバインドすることです。コールバック関数はタイムアウトをリセットし、前のイベントが指定された時間前に発生したかどうかをチェックします(例では500ms)。

お気づきかもしれませんが、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 に答える
0

onchange の代わりに onkey up を試す

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

likeonblurの代わりにJavaScriptを呼び出すことができますonchange

<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 に答える