0

私は jsfiddle を持っています - http://jsfiddle.net/stevea/pb9MM/3/ - 入力要素があります。.change() で入力の変更を感知します。

$(function() {
    $('input#fname').change(function(e) {
        alert("input received");
        $('div#firstName').append(this.value);
    });


});

しかし、テキストを入力せずに単に Return を入力すると、変更ハンドラが入力されていないことに気付きました。しかし、テキストなしで返すことは有効な入力のようです。ユーザーは、設定したデフォルトを使用するように通知しています。Return だけが入力されたときに変更ハンドラーを呼び出すにはどうすればよいですか?

ありがとう

4

2 に答える 2

1

入力の値を変更しないため、ハンドラーでキャッチできないというReturn意味だと思います。Enter keychange

keydownエンターキーかどうかを確認する条件付きのイベントが必要です。何かのようなものif (e.which == 13)

$('input#fname').change(function (e) {
    alert("input received");
    $('div#firstName').append(this.value);
}).keydown(function (e) {
    if (e.which == 13) { //keyCode for Enter key is 13
        alert('Enter key pressed');
    }
});

デモ: http://jsfiddle.net/dKJWY/

于 2013-09-03T05:36:42.217 に答える
0

あなたが何を望んでいるのか理解できませんが、リターンが押されたときに値をクリアするつもりなら、値を追加するのではなく、代わりに置き換えてください:

$(function() {
    $('input#fname').change(function(e) {
        alert("input received");
        $('div#firstName').html(this.value);
    });
});
于 2013-09-03T05:37:03.820 に答える