如何在AJAX调用后将表单重置为新表单(不仅重置值而且还验证表单)

时间:2018-05-18 18:59:32

标签: javascript php jquery

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

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

提交后转到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文件,它带有成功消息,但表单没有重置所有验证并直接显示有效的提交按钮,如下图所示:enter image description here

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

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

提前感谢。

1 个答案:

答案 0 :(得分:1)

我认为这可行。



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




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