我有以下代码
jQuery('#parent').on('keypress', '.textbox', function(e) {
var btn = jQuery(this).closest('tr').find('.btn');
if (btn.length) {
btn.triggerHandler('click');
}
});
此代码是一个委托的按键处理程序,它正在侦听具有类值" .textbox"的文本框事件。 处理程序找到类" .btn"的按钮。 &安培;调用其中包含ajax调用的click处理程序。
问题是这似乎阻止了事件的完成,即如果框中的值是" 2" &安培;我输入" 3",处理程序执行但框中的值仍然是" 2"而不是" 23"。
当我注释掉btn triggerHandler语句时,它正常工作。
为什么会发生这种情况?
感谢。
答案 0 :(得分:1)
使用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
将首先执行默认操作,但请听处理程序。
答案 1 :(得分:0)
我认为你需要键盘功能。
$(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">
&#13;
答案 2 :(得分:0)
尝试使用'onpress'insted of'keypress'或'keyup'
$(document).ready(function(){
$("input").onchange(function(){
var rs= $(this).val();
alert(rs);
$("input").css("background-color", "pink");
});
});