在下面的代码段中,我试图阻止用户使用<textarea>
将新行输入preventDefault()
。我想要输入键来触发模糊事件,而不是输入新行。但是,以下代码在用户更改<textarea>
中的文本然后按Enter后绕过更改事件。如何确保在更改文本值时始终触发更改事件?
$('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()
答案 0 :(得分:3)
看起来事件ordering存在问题。在IE change
事件中,事件首先被触发,然后blur
事件被触发,但在Firefox和Chrome中则相反。因此,当您在Firefox和Chrome中手动触发blur()
事件时,会导致focus
事件触发,但在IE中则不会。
答案 1 :(得分:0)
只需手动触发更改事件,就像触发模糊事件一样。