gil*_*s27 6 validation asp.net-mvc jquery
我正在使用ASP .NET MVC 1.0和jQuery(包括验证插件)开发Web应用程序.典型"编辑实体"视图的服务器端标记如下
<label for="FirstName">FirstName:</label>
<%= Html.TextBox("FirstName", Model.FirstName) %>
<%= Html.ValidationMessage("FirstName") %>
Run Code Online (Sandbox Code Playgroud)
当无效数据发布到FirstName字段时,生成的HTML是
<label for="FirstName">FirstName:</label>
<input type="text" value="" name="FirstName" id="FirstName" class="input-validation-error text">
<span class="field-validation-error">Please enter the first name.</span>
Run Code Online (Sandbox Code Playgroud)
这正是您对ASP .NET MVC开箱即用的期望.
我现在正在使用jQuery添加客户端验证,并希望它以完全相同的方式运行 - 即输入控件被赋予一类输入验证错误,并且跨度添加了一类字段验证 - 错误,用于显示错误消息.
我快到了,但并不完全.使用errorElement选项可以使验证程序为错误消息创建范围,而不是标签.使用errorClass选项意味着输入元素被赋予一类输入验证错误.
我遇到的问题是错误消息span 也会得到一类输入验证错误,我希望它有字段验证错误.
我已经尝试使用高亮和unhighlight函数来纠正这个问题,但是一旦我开始搞乱跨度上的类,验证本身就会停止工作,只是将表单发布到服务器上.
那里的任何人对我如何解决这个问题有任何想法?谢谢.
看起来我遇到的问题是由于摆弄应用于输入和错误元素的类引起的。该插件会查找具有该类的元素,以便显示或隐藏错误消息,以及计算有多少无效元素。
为了避免这些问题,我停止使用 Darin 的答案中显示的 errorClass: 'input-validation-error' 行,并将其保留为默认值。在 errorPlacement 函数中,我将正确的类附加到错误和输入元素,并将消息插入到 DOM 中的正确位置。现在这一切似乎都有效了。JavaScript如下
$('form').validate({
errorElement: 'span',
errorPlacement: function(error, element) {
error.insertAfter(element);
error.addClass('field-validation-error');
element.addClass('input-validation-error');
},
rules: {
FirstName: {
required: true
}
},
messages: {
FirstName: {
required: 'Please enter the first name.'
}
}
Run Code Online (Sandbox Code Playgroud)
});
感谢达林的意见,因为它为我指明了正确的方向。
| 归档时间: |
|
| 查看次数: |
1930 次 |
| 最近记录: |