我正在尝试使用ASPNET MVC 3项目和placeHolder jQuery插件进行不显眼的验证:
[StringLength(20)]
[OnlyNumbersValidation(ErrorMessage = " ")]
[DisplayName("Fax n°")]
public string Fax { get; set; }
@Html.TextBoxFor(model => model.Fax, new { @class = "txt-input", placeholder = "Eg. Fax n°", maxlength = 31 })
@Html.ValidationMessageFor(model => model.Fax, "*", new { @class = "redtxt" })
public class OnlyNumbersValidationAttribute : RegularExpressionAttribute, IClientValidatable
{
public OnlyNumbersValidationAttribute()
: base(@"^\d+$")
{
}
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
{
var errorMessage = FormatErrorMessage(metadata.GetDisplayName());
yield return new OnlyNumbersValidationRule(errorMessage);
}
}
public class OnlyNumbersValidationRule : ModelClientValidationRule
{
public OnlyNumbersValidationRule(string errorMessage)
{
ErrorMessage = errorMessage;
ValidationType = "digits";
}
}
}
问题是MVC 3和placeHolder插件之间的交互,因为如果我没有输入值(并且placeHolder显示文本“例如传真n°”,它“认为”我输入了无效的输入,因为该文本由字母组成,而不仅仅是数字。
知道怎么解决吗?
提前致谢!吉列尔莫。
答案 0 :(得分:0)
修复了一个错误,该错误涉及在html页面中嵌套表单,并将自定义验证程序移动到另一个类修复了问题。 感谢。
答案 1 :(得分:0)
更新placeholder插件解决了我的问题