【问题标题】:jQuery validate not works with RazorjQuery 验证不适用于 Razor
【发布时间】:2015-02-18 05:41:17
【问题描述】:

由于 html 中生成的名称与 jQuery 验证语法不匹配,我无法让 jQuery Validate 为我的 Viewmodel 的联系人数据属性正常工作。如果我使用TextBoxFor,则Telephone 的html 结果为name="Contact.Telephone",但我无法将规则设置为Contact.Telephone

我错过了什么吗?

<input id="Contact_Telephone" class="form-control" type="text" value="" name="Contact.Telephone">  

 jQuery("#form").validate({
        rules: {
            Name: "required",
            LastName: "required",
            SecondLastName: "required",
            BirthDate: "required",
            Email: {
                email:true
            },
            Telephone: {
                digits: true,
                maxlength: 10
            },
            Mobile: {
                digits: true,
                maxlength: 10
            }
        },
        messages: {
            Name: "Dato requerido.",
            LastName: "Dato requerido.",
            SecondLastName: "Dato requerido.",
            BirthDate: "Dato requerido.",
            Email: {
                email: "Capture un correo válido."
            },
            Telephone: {
                digits: "Capture un dato numérico.",
                maxlength:"Longitud máxima permitida de 10 caractéres"
            },
            Mobile: {
                digits: "Capture un dato numérico.",
                maxlength: "Longitud máxima permitida de 10 caractéres"
            }
        }


public class PersonViewModel
{
    public int PersonID {get;set;}
    public string Name {get;set;}
    public string LastName {get;set}
    public Datetime BirthDate {get;set;}
    public Contact Contact {get;set;}
}
public class Contact
{
    public int ContactID {get;set;}
    public string Email {get;set;}
    public string Mobile {get;set;}
    public string Telephone {get;set;}
}

【问题讨论】:

  • 尝试将规则添加到属性$( "#Contact_Telephone" ).rules( "add", { required: true, messages: { required: "Dato requerido" }});
  • 你为什么不使用数据注释进行验证?

标签: jquery asp.net-mvc asp.net-mvc-5 jquery-validate


【解决方案1】:

由于 html 中生成的名称与 jQuery 验证语法不匹配,我无法让 jQuery Validate 为我的 Viewmodel 的联系人数据属性正常工作。

它们必须匹配。您必须使它们匹配,否则它将永远无法工作。

...Telephone 的 html 结果是name="Contact.Telephone",但我无法将规则设置为Contact.Telephone

When the name contains special characters like dots, you must use quotes around the name...

jQuery("#form").validate({
    rules: {
        "Contact.Telephone": {
            digits: true,
            maxlength: 10
        }
        .....

【讨论】:

    猜你喜欢
    • 2012-01-12
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-27
    • 2013-11-09
    • 1970-01-01
    相关资源
    最近更新 更多