按Enter键时,ajax提交表单出现问题

时间:2011-09-12 05:47:34

标签: jquery ajax forms placeholder

我正在尝试在输入字段中提交一些文本并将其输出到同一页面而不刷新页面。但是,它没有做我想做的事情。我也有一个占位符元素,如果我不小心在字段中输入任何内容,它将不会将我的占位符文本插入我的数据库(mysql)。我遇到的问题是,当我按下回车键时,它只会刷新页面,当我在成功时尝试获取警报时它不会提醒我。

-------------------- jquery下面------------------

$('[placeholder]').parents('form').submit(function() {
  $(this).find('[placeholder]').each(function() {
    var input = $(this);
    if (input.val() == input.attr('placeholder')) {
      input.val('');
    }

  });

  var input = $('input.to_do').val();

  dataList = 'list=' + input;
    $.ajax({
        type: "POST",
        url: "ajax_table_edit.php",
        data: dataList,
        cache: false,
        success: function(html)
            {
                alert(input);
                //$('.to_do_list_').html(data);
                //$('.n').hide();
            }
    });
});

-------------------------- html下面------------------- -

<form action='#' method='post' >
<input type="text" class="to_do shadow" placeholder="enter text"/>
</form>

谢谢你的时间!

2 个答案:

答案 0 :(得分:3)

return false添加到您的函数底部,以便该页面不会执行默认的提交操作。

像这样:

$('[placeholder]').parents('form').submit(function() {
  $(this).find('[placeholder]').each(function() {
    var input = $(this);
    if (input.val() == input.attr('placeholder')) {
      input.val('');
    }

  });

  var input = $('input.to_do').val();

  dataList = 'list=' + input;
    $.ajax({
        type: "POST",
        url: "ajax_table_edit.php",
        data: dataList,
        cache: false,
        success: function(html)
            {
                alert(input);
                //$('.to_do_list_').html(data);
                //$('.n').hide();
            }
    });

  return false;
});

答案 1 :(得分:3)

防止默认事件行为:

$('[placeholder]').parents('form').submit(function(event) {
  $(this).find('[placeholder]').each(function() {
    var input = $(this);
    if (input.val() == input.attr('placeholder')) {
      input.val('');
    }

  });

  var input = $('input.to_do').val();

  dataList = 'list=' + input;
    $.ajax({
        type: "POST",
        url: "ajax_table_edit.php",
        data: dataList,
        cache: false,
        success: function(html)
            {
                alert(input);
                //$('.to_do_list_').html(data);
                //$('.n').hide();
            }
    });

    event.preventDefault();
});