preventDefault()用于按键取消更改事件

问题描述 投票:0回答:2

在下面的代码段中,我试图防止用户通过使用<textarea>将新行输入到preventDefault()中。而不是输入新行,我希望输入键触发模糊事件。但是,下面的代码在用户更改<textarea>中的文本然后按回车之后,绕过了更改事件。如何确保更改文本值时始终触发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()
javascript jquery jquery-events event-bubbling
2个回答
3
投票

似乎是事件ordering的问题。在IE中先触发change事件,然后再触发blur事件,但是在Firefox和Chrome中则相反。因此,当您在Firefox和Chrome中手动触发blur()事件时,它会触发focus事件,但在IE中不会。


0
投票

只需手动触发更改事件,就像触发模糊事件一样。

© www.soinside.com 2019 - 2024. All rights reserved.