0

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

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

4 回答 4

2

将其更改为e.preventDefault当您将事件对象作为e参数传递时。

见下文,

$('#input_field').bind('keyup', function(e) {
   if(e.keyCode==13){
      e.preventDefault(); //<== Changed to e
        $('#insert_ajax_file').load('load_file.php');
   }
   //..
 });
于 2012-08-09T20:02:49.683 回答
2

keyup 事件在默认事件之后触发。使用 keydown

$('#input_field').bind('keydown', function(e) {
    if(e.keyCode==13){
        e.preventDefault();
    }
});
于 2012-08-09T20:11:19.813 回答
1

绑定到 'click' 事件而不是 'keyup':

$('#input_field').bind('click', function(e) {
    e.preventDefault();
    // do whatever you want here
});

http://jsfiddle.net/rzkaN/

编辑:对不起,误读了你的问题。

使用keypress而不是keyup那时。 http://jsfiddle.net/rzkaN/1/

于 2012-08-09T20:08:01.880 回答
0

你在你的函数中传递了一个“e”,但是在“事件”上做一个 preventDefault

在职的:

$('#input_field').bind('keyup', function(e) {
  if(e.keyCode==13){
    e.preventDefault();
    $('#insert_ajax_file').load('load_file.php');
  }
});
于 2012-08-09T20:04:11.020 回答