1

私は次のように ajax 呼び出しを行っていました。

        form.bind("submit", function(e) {
            e.preventDefault();
            form.ajaxSpin("large");
            form.ajaxSubmit({
                success: function(result) {
                    if (!b.ajaxFailure(result, true)) {
                        if(b.validateForm(form,result)) {
                            console.log(result); // TODO: something?
                        }
                    }
                },
                complete: function() {
                    form.ajaxSpin(false);
                }
            });
        });

これまでのところ、私のデザインは徐々に強化されています。
そして今、実際のリクエストを行う前に、クライアント側でもモデルの検証を実装したいと考えています。

最新のスクリプトjquery.validation.jsとともに、プラグインをプロジェクトに含めました。jquery.validation.unobtrusive.js

次に、コードを次のように変更しました。

        form.validate({
            submitHandler: function() {
                form.ajaxSpin("large");
                form.ajaxSubmit({
                    success: function(result) {
                        if (!b.ajaxFailure(result, true)) {
                            if (b.validateForm(form, result)) {
                                console.log(result); // TODO: something?
                            }
                        }
                    },
                    complete: function() {
                        form.ajaxSpin(false);
                    }
                });
            }
        });

これは、検証が最初に通過しない限りリクエストを行わないことを除いて、まったく同じであると私は考えました。

検証の側面は、モデルからビューのDOMに設定されたデータ属性mvcを使用して、完全に期待どおりに完全に機能します。

これが失敗し、その理由がわからない部分は、私が ajax ではないことに戻ったことです。ページがリロードされるだけで、submitHandler決して起動しません(このリンクが示唆するものとは反対です)

submitHandler( onSuccess、など)の他の一般的な名前をいくつか試しましたsuccessが、どれも機能していないようです。

4

0 に答える 0