按键处理程序取消事件
keypress handler canceling the event
我有以下代码
jQuery('#parent').on('keypress', '.textbox', function(e) {
var btn = jQuery(this).closest('tr').find('.btn');
if (btn.length) {
btn.triggerHandler('click');
}
});
该代码是一个委托的按键处理程序,它正在侦听具有类值"的文本框的事件;。文本框";。处理程序找到类为"的按钮;。btn"&调用其中包含ajax调用的点击处理程序。
问题是这似乎阻止了事件的完成,即如果框中的值是"0";2〃&我键入一个";3〃;,处理程序执行,但框中的值保持为"0";2〃;而不是";23〃;。
当我注释掉btn-triggerHandler语句时,它正常工作。
为什么会发生这种情况?
使用keyup
而不是keypress
。在您的脚本中,您触发了另一个事件。
jQuery('#parent').on('keyup', '.textbox', function(e) {
var btn = jQuery(this).closest('tr').find('.btn');
if (btn.length) {
btn.triggerHandler('click');
}
});
keypress
被triggerHandler
中断,因此不允许发生按键的默认动作。而keyup
将首先执行默认操作,然后侦听处理程序。
我认为您需要设置函数键。
$(document).ready(function(){
$("input").keyup(function(){
var rs= $(this).val();
alert(rs);
$("input").css("background-color", "pink");
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
Enter your value: <input type="text">
尝试使用"onchange"代替"keypress"或"keyup"
$(document).ready(function(){
$("input").onchange(function(){
var rs= $(this).val();
alert(rs);
$("input").css("background-color", "pink");
});
});
相关文章:
- 取消绑定主干视图事件
- 阻止浏览器对keydown事件作出反应,但不取消该事件
- 如何从另一个处理程序内部取消JavaScript事件处理程序函数的执行
- 从父元素取消绑定滚动事件并绑定到子元素
- 网格取消事件未启动
- 按键处理程序取消事件
- 取消拖动&选择事件
- 正在取消IE11中的JavaScript事件
- 使用 ng-change 对输入类型数据进行 JavaScript 取消事件
- 如何在jquery/JavaScript中打开浏览文件对话框时执行取消事件
- 脸书图FB.登录连接对话框,取消事件
- 使用 jquery mouseout 取消事件
- 当我通过javascript添加警报并取消事件时,滚动条消失了
- 在输入类型=“文件”上取消事件
- 取消事件后如何继续事件传播
- Facebox取消事件
- 当未满足延迟时取消事件
- 如何取消事件处理程序/侦听器
- 页面加载取消事件
- 在javascript / jquery中取消事件mousedown