0

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 :(
    }
});
4

2 に答える 2

0

フォームIDmyDialogですか?

もしそうなら、私は構造を次のように変更します:

<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 :(
    }
});

検証しようとしているフォームである#myDialogにjQueryUIを作用させることで、衝突が発生していると思います。

もう1つのオプションは、閉じるときにダイアログを破棄し、開くときに常にダイアログを再作成することです。

于 2012-07-19T13:17:13.723 に答える
0

それでもクリアされない場合は、beforeCloseに近づけると機能するため、ダイアログが閉じられてDOMに移動する前にクリアされます。

于 2012-08-01T13:55:47.517 に答える