0

我想在 ajax 成功时刷新一个特定的 div,我使用下面的代码,但整个页面都被刷新了。

<script type="text/javascript">
$('#post_submit').click(function() {
  var form_data = {
    csrfsecurity: $("input[name=csrfsecurity]").val(),
    post_text: $('#post_text').val()    
  };

  $.ajax({
    url: "<?php echo site_url('/post_status'); ?>",
    type: 'POST',
    data: form_data,
    success: function(response){
      $(".home_user_feeds").html("markUpCreatedUsingResponseFromServer");
    }
    return false;
  });
  return false;
});
</script>
4

3 回答 3

1

return false您在块内有一个额外的内容,$.ajax这很可能会导致错误,因此您的表单不会通过 ajax 提交。如果你删除它,你不应该有任何问题。

于 2013-03-03T12:17:31.557 回答
0

从 $.ajax 函数中删除 return false 。它是一个语法错误。$.ajax 函数只需要一个 json 对象作为参数。“return false”不能是 json 对象的一部分。您应该在测试期间始终保持 JavaScript 控制台打开 - 在 Chrome 中按 Ctrl-Shift-J 并选择控制台以查看任何 JS 错误。

还建议您使用<input type=button>代替<input type=submit><button></button>

于 2013-03-03T12:19:22.737 回答
0

使用submit表单的事件并return false从 ajax 回调中删除:

$('#myFormId').on('submit', function() {

    var form_data = {
        csrfsecurity: $("input[name=csrfsecurity]").val(),
        post_text: $('#post_text').val()    
    };

    $.ajax({
        url: "<?php echo site_url('/post_status'); ?>",
        type: 'POST',
        data: form_data,
        success: function(response){
            $(".home_user_feeds").html("markUpCreatedUsingResponseFromServer");
        }
    });
    return false;
});
于 2013-03-03T12:18:17.163 回答