【发布时间】: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