我正在尝试阻止输入按钮,当在表单标签内的输入字段上提交并刷新页面时。相反,我想加载一个AJAX文件。现在我知道如果我删除了表单标签,那么这将起作用,我甚至不需要e.preventDefault();
标签。我在这里错过了什么?代码如下。
$('#input_field').bind('keyup', function(e) {
if(e.keyCode==13){
e.preventDefault();
$('#insert_ajax_file').load('load_file.php');
}
答案 0 :(得分:2)
将事件对象作为e.preventDefault
传递为arg时,将其更改为e
。
见下文,
$('#input_field').bind('keyup', function(e) {
if(e.keyCode==13){
e.preventDefault(); //<== Changed to e
$('#insert_ajax_file').load('load_file.php');
}
//..
});
答案 1 :(得分:2)
在默认事件之后触发keyup事件。 使用keydown
$('#input_field').bind('keydown', function(e) {
if(e.keyCode==13){
e.preventDefault();
}
});
答案 2 :(得分:1)
绑定到'click'事件而不是'keyup':
$('#input_field').bind('click', function(e) {
e.preventDefault();
// do whatever you want here
});
编辑:抱歉,误读了您的问题。
然后使用keypress
代替keyup
。
http://jsfiddle.net/rzkaN/1/
答案 3 :(得分:0)
你在你的职能上传递'e',但在'事件'
上做一个preventDefault工作:
$('#input_field').bind('keyup', function(e) {
if(e.keyCode==13){
e.preventDefault();
$('#insert_ajax_file').load('load_file.php');
}
});