0

以下のコードスニペットでは、ユーザーがを使用してに新しい行を入力できないようにしてい<textarea>ますpreventDefault()。新しい行を入力する代わりに、Enterキーでぼかしイベントをトリガーする必要があります。<textarea>ただし、以下のコードは、ユーザーが内のテキストを変更してEnterキーを押した後、変更イベントをバイパスしています。テキストの値が変更されたときにchangeイベントが常に発生するようにするにはどうすればよいですか?

$('textarea')
.keypress(function (event) {
    if (event.which == '13') {//13 = Enter
        event.preventDefault();
        $(this).blur();
    }
})
.change(function() {// THIS DOES NOT FIRE IF USER PRESSES ENTER
    alert('change event');
})
.blur(function() {
    console.log('blur event');
});//end: blur()
4

2 に答える 2

3

イベントの順序に問題があるようです。IEではchangeイベントが最初に発生し、次にblurイベントが発生しますが、FirefoxとChromeではその逆です。そのblur()ため、FirefoxとChromeでイベントを手動で発生させると、focusイベントが発生しますが、IEでは発生しません。

于 2012-11-06T03:20:38.193 に答える
0

ぼかしイベントをトリガーするのと同じ方法で、変更イベントを手動でトリガーするだけです。

于 2012-11-06T03:20:13.120 に答える