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

时间:2011-09-13 03:58:05

标签: php jquery ajax events event-handling

我有一个event.preventDefault()的jquery / ajax表单。问题是我输入后输入字段不会变空。通常当您在输入字段中按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";

}

同时。我试图回应成功,但这也不起作用。有人可以帮我找到解决这个问题的方法吗?

感谢您的时间!

1 个答案:

答案 0 :(得分:2)

您必须使用jQuery: $("#field").val='';

自行删除字段

并且它没有输出你的消息,因为你没有在成功时获取正确的变量..你将它定义为html,可能会被保留...尝试调用它而不是因为这是你在里面使用的反正的功能。

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

另外,为什么你甚至在php端有$id代码?看起来它甚至没有被使用。而且,仅仅因为它的ajax并不意味着你不能安全地使用SQL注入,你需要清理那个$_POST['list']变量。