Jquery移动表单响应处理

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

如果用户输入了正确的用户名和密码,我会将其重定向到其信息中心。 如果他们错过了一个字段,客户端验证会将其选中。

我的问题是服务器端验证拒绝用户注册。 例如,用户名已准备就绪。

在这种情况下,我使用错误消息在服务器上呈现页面。

在客户端,我看到原始页面转换出来并且新页面转换为。 新页面正确显示错误消息。 我的脚本如何初始化客户端验证不会生效。

我的猜测是,页面上有两个同时具有相同ID的元素。 所以旧的再次运行验证,然后转移。

我该如何处理?

这是脚本

$('#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
额外