Ajax验证使用jquery?

7 validation ajax jquery

我使用jquery验证插件.

在我的表格中,我需要检查昵称是否已被使用.

为此他们提供remote了进行ajax调用的密钥.对我来说,ajax调用正常工作并返回true或false.但它允许即使返回值为false,也不应该发生.

我的验证码看起来像,

$(function() {
    $("#myform").validate({
        rules: {
            fullName: {
                required: true,
                minlength: 5
            },
            nickName: {
                required: true,
                minlength: 4,
                alphaNumeric: true,
                remote: {
                    url: "NickNameChecker",
                    type: "post",
                    data: {
                        nickName: function() {
                        return $("#nickName").val();
                    }},
                    success: function(data) {
                        return data;
                    }
                }
            }
        },
        messages: {
            fullName: {
                required: "Please Enter Your Full Name.",
                minlength: "Full Name should have minimum 5 letters."
            },
            nickName: {
                required: true,
                minlength: "Nick Name should contain minimum 4 letters.",
                remote: "This nickname is already in use."
            }
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

任何建议都会很有感激!

谢谢!

解:

解决方案仅在我的代码中.

我刚刚删除了成功部分并尝试了.它的工作很棒!

And*_*ker 1

(上面评论的扩展解释)

success选项对于 jQuery validate 的远程验证无效。您应该能够仅指定要访问的 URL 来进行返回 true 或 false 值/错误消息的验证:

服务器端资源通过 $.ajax (XMLHttpRequest) 调用,并获取一个键/值对,对应于已验证元素的名称及其作为 GET 参数的值。响应被评估为 JSON,并且对于有效元素必须为 true,对于无效元素可以为任何 false、未定义或 null,使用默认消息;或一个字符串

有关如何使用该选项的更多信息,请参阅远程文档。你的代码可能看起来像这样:

$(function() {
    $("#myform").validate({
        rules: {
            fullName: {
                required: true,
                minlength: 5
            },
            nickName: {
                required: true,
                minlength: 4,
                alphaNumeric: true,
                remote: {
                    url: "NickNameChecker",
                    type: "post",
                    data: {
                        nickName: function() {
                        return $("#nickName").val();
                    }
                }
            }
        },
        messages: {
            fullName: {
                required: "Please Enter Your Full Name.",
                minlength: "Full Name should have minimum 5 letters."
            },
            nickName: {
                required: true,
                minlength: "Nick Name should contain minimum 4 letters.",
                remote: "This nickname is already in use."
            }
        }
    });
});
Run Code Online (Sandbox Code Playgroud)