php - 使用 Ajax 提交表单

标签 php jquery jquery-validate

我有一个 div,里面有一个表单,并设置为使用 ajax 发布,并像这样在 div 中返回结果

$(document).ready(function(){
    $("#guestList").validate({
        debug: false,
        submitHandler: function(form) {
            // do other stuff for a valid form
            //$('form').attr('id', 'guestList1')
            $.post('brides_Includes/guestlistDisplay1.php', $("#guestList").serialize(), function(data) {
                $('#results').html(data)
                $("form#guestList")[0].reset();
            });
        }
    });
});

当结果返回时,它会显示正确的更改并替换表格。但是,当我再次发布表格时。相关更改按预期进行,但随后还会刷新页面并在地址栏中显示发布的信息

我如何发布表单并替换它以允许它再次发布和调用脚本而不发生这种情况?

最佳答案

使用 ajax 返回表单的问题是页面上已有的任何 JavaScrip 代码都不会看到/利用新表单。解决此问题的最佳方法是使用 ajax 传回 JavaScrip 和 HTML。

基本上每次传回新表单时都会传回以下代码。您需要更新 ID 和链接 (brides_Includes/gueSTListDisplay1.php)。您还需要用这段代码替换主页上的代码,因为执行返回的任何 JavaScrip 都需要这样做。

<script type="text/javascript">
$(document).ready(function(){
  $("#guestList").validate({
    debug: false,
    submitHandler: function(form) {
      // do other stuff for a valid form
      //$('form').attr('id', 'guestList1')
      $.post('brides_Includes/guestlistDisplay1.php', $("#guestList").serialize(), function(data) {
        $('#results').html(data);

        //This executes the JavaScript passed back by the ajax.
        $("#results").find("script").each(function(i) {
          eval($(this).text());
        });

        $("form#guestList")[0].reset();
      });
    }
  });
});
</script>

关于php - 使用 Ajax 提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14548042/

相关文章:

javascript - 重构 JavaScript 原型(prototype)构造函数中的重复代码

jquery 验证插件内联自定义规则

jquery validate 不适用于多种表单

PHP 无法删除由 JavaScript 设置的 cookie

php - 使用 AJAX 在 Laravel 中将项目添加到数据库,然后显示项目

javascript - Chrome/V8 对某些元素的 onmousemove() 变慢

javascript - Jquery验证不验证表单中的多选框

php - 将 CMS 拉入/嵌套字段制作成矩阵

php - Laravel 5 数据库关系类型

javascript - 混合(图片+视频)类型的灯箱问题