Jqueryモバイルフォーム対応処理

I have a simple registration form using jQuery mobile & jquery-validate.

ユーザーが正しいユーザー名とパスワードを入力すると、そのユーザーをダッシュ​​ボードにリダイレクトします。 彼らがフィールドを欠場すると、クライアント側の検証がそれをピックアップします。

私の問題は、サーバー側の検証がユーザー登録を拒否するときです。 たとえば、ユーザー名はすべて準備完了です。

この場合、サーバー上のページにエラーメッセージが表示されます。

クライアント側では、元のページ遷移と新しいページ遷移が表示されます。 新しいページにエラーメッセージが正しく表示されます。 どのようにクライアント側の検証を初期化するための私のスクリプトが有効になりません。

私の推測では、同時に同じidを持つ2つの要素がページにあるということです。 そのため、古いものは検証をもう一度実行してから移行します。

これをどうすれば処理できますか?

ここにスクリプトがあります

$('#registerPage').live('pagecreate', function (event) {
    $("#registerForm").validate({
        rules: {
            username: "required",
            password: "required",
            confirmPassword: {
                required: true,
                equalTo: "#password"
            }
        }
    });
});
0

1 答え

新しいページを検証セレクタのコンテキストとして使用することで修正しました。

var rps = rps || {};
rps.register = rps.register || {};
rps.register.validate = function (context) {
    $("#registerForm", context).validate({
        rules: {
            username: "required",
            password: "required",
            confirmPassword: {
                required: true,
                equalTo: "#password"
            }
        }
    });
};

$(document).on('pageshow', '#registerPage', null, function (event, ui) { rps.register.validate(); });
$(document).on('pagehide', '#registerPage', null, function (event, ui) { rps.register.validate(ui.nextPage); });
1
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript