使用对话框中的jQuery验证重置表单

Resetting a form using jQuery validate from within a dialog

本文关键字:验证 表单 jQuery 对话框      更新时间:2023-11-22

我在jQuery对话框中的表单中使用jQuery Validate。当用户关闭对话框时,我希望清除所有表单字段,并重置显示错误反馈的字段。

它正确地将字段重置为空白,但错误反馈没有正确清除。

这是我的对话框代码。

// Attach dialog
$("#myDialog").dialog({
    autoOpen: false,
    modal: true,
    close: function(){
        $('#myDialog')[0].reset(); // This works in resetting the actual form values
        $("#myDialog").validate().resetForm(); // Not working :(
    }
});

表单id是myDialog吗?

如果是这样,我会将结构更改为:

<div id="myDialog>
   <form id="myForm">
   //inputs, etc...
   </form>
</div>

那么你的对话框调用会看起来像:

$("#myDialog").dialog({
    autoOpen: false,
    modal: true,
    close: function(){
        //$('#myForm')[0].reset(); // This works in resetting the actual form values
        $("#myForm").validate().resetForm(); // Not working :(
    }
});

我认为,让jQuery UI在#myDialog上运行,并将其作为您试图验证的表单,会遇到冲突。

另一种选择是在关闭时销毁对话框,并始终在打开时重新创建。

如果它们仍然没有清除,那么将close更改为beforeClose是有效的,因此它们在对话框关闭并在DOM上移动之前被清除。