gpt4 book ai didi

javascript - jQuery preventDefault 不表现

转载 作者:行者123 更新时间:2023-11-29 10:49:27 24 4
gpt4 key购买 nike

我有一个简单的搜索功能,但它运行不正常。搜索框位于我们在搜索时不想提交的表单内,因此我有以下设置。

$(function() {
jQuery.fn.onEnter = function(callback) {
this.keyup(function(e) {
if(e.keyCode == 13) {
e.preventDefault();
//e.stopPropagation();
if (typeof callback == 'function')
callback.apply(this);
}
});
return this;
}
$('#txtSearch').onEnter(function() {
search();
return false;
});
$('#search_btn').click(function() {
search();
return false;
});

function search() {
alert('searching');
}
});

e.preventDefault() 行不工作,所以搜索功能和表单提交一样触发。我已经用 e.preventDefault()e.stopPropagation() 试过了,但没有成功。

最佳答案

您正在停止浏览器默认的 keyup 事件,而不是 submit 事件。最好的办法是使用 keydown 来停止输入键本身。

还可以使用针对跨浏览器规范化的 e.which

您可以尝试添加一个 keydown 处理程序来防止输入键并在 keyup 中执行操作。

演示: http://jsfiddle.net/PSkvm/1/

jQuery.fn.onEnter = function(callback) {
this.keyup(function(e) {
if(e.keyCode == 13) {
//e.stopPropagation();
if (typeof callback == 'function')
callback.apply(this);
}
}).keydown(function (e) {
if(e.keyCode == 13) {
e.preventDefault();
}
});
return this;
}

关于javascript - jQuery preventDefault 不表现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13312457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com