jquery .empty() 与按键事件冲突
jquery .empty() conflict with keypress event
这意味着
允许用户键入消息,然后按回车键发送。这应该会清除该框,以便用户可以键入新消息。问题是按回车键(创建换行符(的标准结果发生在 .empty(( 事件之后。所以文本消失了,取而代之的是换行符,这是非常不可取的。我怎样才能规避这种情况?
$('#messagebox').keypress(function(event) {
if (event.keyCode == '13') {
send();
$('#messagebox').empty();
}
});
您可以通过 event.preventDefault()
(或从事件处理程序函数中return false
,这是 preventDefault
+ stopPropagation
的 jQuery 简写(阻止keypress
的默认操作:
现场示例 | 来源:
.HTML:
<p>Pressing Enter will clear the text area below:</p>
<textarea id="messagebox" rows="10" cols="50"></textarea>
JavaScript:
jQuery(function($) {
$("#messagebox").focus().keypress(function(event) {
if (event.keyCode === 13) {
$(this).val("");
event.preventDefault();
}
});
});
FWIW,我可能会使用带有空字符串而不是empty
的val
来清除文本区域,因为val
专门用于设置表单字段 的值——但如果empty()
对您有用......
$('#messagebox').keypress(function(event) {
if (event.keyCode == '13') {
event.preventDefault();
send();
$(this).empty();
}
});
演示
$('#messagebox').on('keydown',function(e) {
if (e.which === 13) {
send();
$(this).val('');
e.preventDefault();
}
});
相关文章:
- jQuery与导航菜单上的mouseover事件冲突.
- 鼠标滚轮事件和滚动事件相互冲突
- 管理不应冲突的定时事件
- jQuery 和 OpenLayer 之间的事件侦听器冲突
- 使用冲突的事件侦听器将对象分隔到原型链中
- Javascript 鼠标按下和鼠标向上事件冲突
- 引导-sass 多选事件冲突
- jquery .empty() 与按键事件冲突
- 管理父子分区中的事件冲突
- 响应式站点导航菜单的jQuery点击事件冲突
- windows 8.1pc的IE11中鼠标移动事件与触摸事件冲突
- 输入文本区选择与鼠标下拉事件冲突
- js鼠标悬停事件冲突
- JQuery-UI Datepicker()点击事件似乎与自定义事件冲突
- 在vejs中单击鼠标事件冲突
- EXT拖放事件冲突,即如何同时使用ondragout和notifout
- Javascript事件冲突,但不确定如何识别第一个事件分配
- RadTreeView上的客户端事件和服务器端事件冲突
- 防止touchmove事件冲突与滚动的jquery UI对话框
- 2个不同的点击事件冲突