2

アプリケーションで Client Side Validations rails gem v3.1.0 を使用しています。検証が必要なフォームをjqueryダイアログに表示しています。クライアント状態の検証は、そのフォームで有効になっています。すべてが検証でうまく機能しますが、ユーザーがダイアログを (送信せずに) キャンセルすると、既存の検証エラーをクリアしたいと思います。このようにして、ユーザーがダイアログを再度起動すると、検証エラーはフォームにまだ存在しません。

ダイアログを閉じるときに各要素のクライアント状態検証パスイベントをトリガーすることで、これを達成しようとしました-ラッピングエラーフィールドとラベルを削除することで機能します。1 つの問題は、このコードの後で後続の検証が機能しないことです。バインドされたイベントが削除され、トリガーされなくなったように感じます。

これを達成するためのより良い方法はありますか?

私のjqueryダイアログ:

$('#create_dialog').dialog({
            height: 260,
            width: 420,
            title: "title",
            buttons: {"<%= I18n.t("create") %>": function(e) {
                $('#new_segment').submit();
                },
                Cancel: function() {
                    var form = $('#new_segment');
                    form.find('[data-validate]:input').each(function() {
                        $(this).trigger('element:validate:pass');
                    });
                    $(this).dialog("close");

                    }
                }
        });
4

2 に答える 2

0

https://github.com/bcardarella/client_side_validations/issues/328

Client Side Validations gem の開発者である Brian Cardarella から:

残念ながら、現時点ではこれを行うクリーンな方法はありません。これは 4.0 で変更されます

于 2012-11-04T20:55:07.220 に答える