【问题标题】:How to reset form as a fresh form(not only reset values but also validation of form) after AJAX callAJAX调用后如何将表单重置为新表单(不仅重置值,还验证表单)
【发布时间】:2018-05-18 18:59:31
【问题描述】:

我创建了一个带有简单验证的表单 demo.php(未触摸、脏、有效/无效),例如在触摸输入时将颜色更改为黄色,在有效时将颜色更改为绿色。如果所有字段均有效,则提交按钮处于活动状态。 一切正常。 提交时转到 abc.js 文件,然后调用 ajax 进程,该进程转到 pusttoDb.php,然后进行输出,然后在 demo.php 中显示结果。 下图显示了我的表单。

如果所有字段都有效,则显示提交按钮。

提交后进入js文件,代码如下:

$(document).ready(function(){
   alert('form js page');
        $( "#myForm" ).on( "submit", function( event ) {
            event.preventDefault(); //this will prevent the form from submitting
         //   var form_data = $("#myForm").serialize();
            var data=$("#myForm :input").serializeArray();
            $.ajax({
                 url: "pushtodb.php",
                method: "POST",            
                data: data,
                success: function (info) {
                    $("#result").html(info);
                    $('#myForm')[0].reset(); // to reset the data
                   /* $('#myForm').unbind("submit");
                    this.$('#myForm').form.markAsPristine();
                    this.$('#myForm').form.markAsUntouched();
                    this.$('#myForm').form.updateValueAndValidity();*/

                }
            });
        });
    });

从 pushtoDb.php 文件中,它携带成功消息,但表单不会在所有验证后重置,而是直接显示有效的提交按钮,如下图所示:

如果我们观察到上面的图像,只有数据被重置,但表单显示为有效并且提交输入也是有效的。

如何重置整个表单而不是仅重置数据/值?

提前致谢。

【问题讨论】:

  • 你真的应该花一些时间来减少问题。您真的需要所有 4 列 (x2) 来提供最小的、可验证的示例吗? stackoverflow.com/help/mcve
  • 为了理解目的,我保留了我的表单图像。希望你理解实际问题出在 Js 代码上,即我想在哪里重置整个表单 @P.Brian.Mackey
  • 这不是我是否理解这种情况。这是关于简洁和重视那些免费帮助你的人的时间。如果你把问题减少到足够多,谁知道你甚至可以找到问题的答案?我最初的想法是在Pristine 附近,但后来我看到这个问题是多么冗长和密集,我只是把它写下来,而不是深入研究它来自己完成这项工作。
  • 我可能对此有误,或者它可能不是正确的方法,但有什么理由不能重定向到带有 url 中的附加参数的同一页面。如果您重定向页面,它将再次重新加载,并且您的验证将被重置,并且由于 url 中的附加参数,您也可以显示您的成功消息。
  • 使用 jQuery 不是 Angular 的方式,也就是说我认为发生的事情是这些变化发生在 Angular 环境之外。尝试调用 $scopy.digest(),强制执行摘要循环。这是SO-post

标签: javascript php jquery


【解决方案1】:

我认为这可行。

$('#myForm [type=submit]').prop('disabled', true);

但我更喜欢使用标志变量来设置提交按钮的状态。

【讨论】:

  • 50% 有帮助。您的代码将提交为 false。如何重置输入表单?请帮忙
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-03
  • 1970-01-01
  • 1970-01-01
  • 2020-04-10
  • 2013-09-12
  • 1970-01-01
相关资源
最近更新 更多