jquery密码验证

时间:2013-05-28 09:56:23

标签: javascript jquery html asp.net-mvc-4 jquery-validate

在我看来,我有2个密码字段:

   @Html.PasswordFor(m => m.Password)<br />
   @Html.PasswordFor(m => m.ConfirmPassword)<br />

现在我正在寻找在这两个字段中使用我的javascript函数的方法。

function addCustomMessages() {
    $("#password_confirm").rules("add", {
        required: true,
        equalTo: "#password",
        messages: {
            required: "Herhaal uw wachtwoord",
            equalTo: "Enter the same password as above"
        }
    });
}

我如何告诉@Html.PasswordFor(m => m.ConfirmPassword)它需要使用#password-confirm

修改

查看:

                   @Html.PasswordFor(m => m.Password, new { @id="password", @class = "equalTo" })<br />
                   @Html.PasswordFor(m => m.ConfirmPassword, new { @id="password_confirm", @class = "equalTo" })<br /> 

使用Javascript:

/*
 * Translated default messages for the jQuery validation plugin.
 * Locale: NL (Dutch; Nederlands, Vlaams)
 */
(function ($) {
    $.extend($.validator.messages, {
        required: "Dit is een verplicht veld.",
        remote: "Controleer dit veld.",
        email: "Vul hier een geldig e-mailadres in.",
        url: "Vul hier een geldige URL in.",
        date: "Vul hier een geldige datum in.",
        dateISO: "Vul hier een geldige datum in (ISO-formaat).",
        number: "Vul hier een geldig getal in.",
        digits: "Vul hier alleen getallen in.",
        creditcard: "Vul hier een geldig creditcardnummer in.",
        equalTo: "Vul hier dezelfde waarde in.",
        accept: "Vul hier een waarde in met een geldige extensie.",
        maxlength: $.validator.format("Vul hier maximaal {0} tekens in."),
        minlength: $.validator.format("Vul hier minimaal {0} tekens in."),
        rangelength: $.validator.format("Vul hier een waarde in van minimaal {0} en maximaal {1} tekens."),
        range: $.validator.format("Vul hier een waarde in van minimaal {0} en maximaal {1}."),
        max: $.validator.format("Vul hier een waarde in kleiner dan of gelijk aan {0}."),
        min: $.validator.format("Vul hier een waarde in groter dan of gelijk aan {0}."),

        // for validations in additional-methods.js
        iban: "Vul hier een geldig IBAN in.",
        dateNL: "Vul hier een geldige datum in.",
        phoneNL: "Vul hier een geldig Nederlands telefoonnummer in.",
        mobileNL: "Vul hier een geldig Nederlands mobiel telefoonnummer in.",
        postalcodeNL: "Vul hier een geldige postcode in.",
        bankaccountNL: "Vul hier een geldig bankrekeningnummer in.",
        giroaccountNL: "Vul hier een geldig gironummer in.",
        bankorgiroaccountNL: "Vul hier een geldig bank- of gironummer in."
    });

    function addCustomMessages() {
        $("#password_confirm").rules("add", {
            required: true,
            equalTo: "#password",
            messages: {
                required: "Herhaal uw wachtwoord",
                equalTo: "Enter the same password as above"
            }
        });
    }

}(jQuery));

仍然不适合我,有人可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

当您使用html帮助程序时,当cshtml解析为html时,它将为您生成<input>标记。因此,使用#password_confirm作为ID是不正确的。如果您希望“password_confirm”为输入标记的ID,请在HTML帮助程序中使用HTML属性进行指定。

例如:

@Html.PasswordFor(m => m.ConfirmPassword, new{id="password_confirm"})

答案 1 :(得分:0)

您可以在HTML中向字段添加多个属性,如下所示:

@Html.PasswordFor(c => c.Password, new { id = "password-confirm"})

此案例的字段ID应为password-confirm