防止默认Jquery

时间:2012-08-09 20:00:55

标签: jquery

我正在尝试阻止输入按钮,当在表单标签内的输入字段上提交并刷新页面时。相反,我想加载一个AJAX文件。现在我知道如果我删除了表单标签,那么这将起作用,我甚至不需要e.preventDefault();标签。我在这里错过了什么?代码如下。

$('#input_field').bind('keyup', function(e) {
    if(e.keyCode==13){
        e.preventDefault();
            $('#insert_ajax_file').load('load_file.php');
    }

4 个答案:

答案 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
});

http://jsfiddle.net/rzkaN/

编辑:抱歉,误读了您的问题。

然后使用keypress代替keyuphttp://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');
  }
});