我找不到任何简单的方法来为在 ASP.NET MVC 中有效的字段设置绿色边框。我正在使用 DataAnnotations 和 Unobtrusive jquery 验证。我拥有所有默认验证样式,并且可以轻松更改无效控件的边框颜色和消息的颜色。但是,没有样式被添加到有效字段中。我该怎么做。我需要用jquery劫持它吗?
我的另一个问题是如何在不编写大量自定义代码的情况下触发对模糊字段的验证?默认情况下,它仅在表单提交时验证。我必须为此使用远程验证吗?我希望在某个地方有一个简单的设置来启用它。
编辑
<% using (Ajax.BeginForm("SaveSupplier",
"Suppiers",
new AjaxOptions
{
UpdateTargetId = "supplier-details-wrapper",
InsertionMode = InsertionMode.Replace
},
new { id = "supplier-details-form", enctype = "multipart/form-data" }))
{ %>
<div id="supplier-details">
<p>
<%: Model.PageDescription %>
</p>
<%: Html.AntiForgeryToken() %>
-- MY FIELDS HERE --
</div>
<% } %>
<div class="form-buttons">
<button id="save-button" type="button" class="submit-button">Save</button>
<button id="cancel-button" type="button" class="submit-button">Cancel</button>
</div>
和 javascript
<script type="text/javascript">
$(function () {
$("#save-button").click(function () {
$("#supplier-details-form").submit();
});
$('input[data-val=true]').on('blur', function () {
$(this).valid();
});
});
</script>
我也有
<script src="<%: Url.Content("~/Scripts/jquery.validate.min.js") %>"></script>
<script src="<%: Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js") %>"></script>
<script src="<%: Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js") %>"> </script>
在 web.config 中
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
我的问题是,无论我做什么,它都只在服务器端进行验证。如何在javascript中手动触发它。我尝试了各种方法,它总是回发到服务器。$("#my-element-id").valid() 有点工作,它返回 1 或 0,但它不突出显示文本框并且不显示错误。验证似乎没有做任何事情。我怀疑这与我的按钮不在 Ajax 表单或由于 AntiFormgeryToken 有关。