使用ajax提交表单和event.preventDefault()问题



我有一个jquery/ajax表单,有event.preventDefault()。问题是,一旦我按下回车键,我的输入字段不会变为空。通常当你在输入栏中按下enter键时,它会在表单中执行"动作",然后输入栏将清空。但是现在当我输入一些东西时,当我按回车键时,我的表单不会重置为空。我知道event.preventDefault()不做正常的"动作"的形式,但我试图不刷新我的页面,只是使用ajax,所以它会加载没有页面刷新。

-------------------- jquery -------------------- ( 下图)

$('[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.sel').val();
  dataList = 'list=' + input;
    $.ajax({
        type: "POST",
        url: "ajax_table_edit.php",
        data: dataList,
        cache: false,
        success: function(html)
            {
                $('.selector').html(data);
            }
    });
    event.preventDefault();
});

--------------- ajax_table_edit.php ----------- ( 下图)

if(isset($_POST['list'])){
$list = $_POST['list'];
$id = $_POST['id'];
$id = ereg_replace("[^0-9]", "", $id);
$sql = mysql_query("INSERT INTO table (column) VALUES ('".$list."')");
echo "success";
}

在同一时间。我试着模仿成功,但这也行不通。有人能帮我找出解决这个问题的方法吗?

感谢您的宝贵时间!

您必须自己用jQuery: $("#field").val='';空白字段

它没有输出你的信息,因为你没有抓住成功的正确变量。你把它定义为HTML,这可能是保留的…试着把它叫做data,因为这就是你在函数内部使用的。

...
success: function(data)
           {
               $('.selector').html(data);
           }
...

还有,为什么你在php端有$id代码?看起来都没用过。而且,仅仅因为它的ajax并不意味着您可以安全地避免SQL注入,所以您需要对$_POST['list']变量进行消毒。

相关内容

  • 没有找到相关文章

最新更新