我正在构建一个Jquery / JS过滤数据表。我有一个搜索输入字段,在按键上触发ajax请求,然后处理后续响应。
一切都很好,直到我决定将退格按钮作为附加事件包括在内,检查字段值是否小于1.
在我添加了第二个.on
方法之前,它一直运行正常,该方法应该只在退格上启动,而不是别的。
如果有人问,ajaxify_laravel()函数工作正常,在这个脚本中不是问题。
结果:一个文本框,除了退格键之外什么也不接受。如何正常接受所有按键操作但单独处理退格键?我以为我把它固定了,但很明显我没有。
我的代码:
$('input[name="search"]').on('keypress', function()
{
if ($(this).val().length > 1)
{
var request = {
'filter' : $(this).attr('name'),
'value' : $(this).val()
}, url = "/admin/user/view";
ajaxify_laravel(url, request, build_user_html, failure);
}
return false;
}).on('keydown', function(e) {
if (e.keyCode == 8 && $(this).val().length < 1)
{
var request = {
'filter' : 'reset'
}, url = "/admin/user/view";
ajaxify_laravel(url, request, build_user_html, failure);
}
});
答案 0 :(得分:1)
看起来“keypress”处理程序(至少有时)返回false
。这将被解释为停止处理事件的命令 - 包括默认的“本机”行为。也就是说,它会导致按键被忽略。