- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以使用 jquery 验证来显示验证摘要?
我正在使用 MVC 3(如果重要的话),并且当每个元素失去焦点时我的表单会进行验证:
$('#myform').validate({ onfocusout: function(element) { $(element).valid(); } };
这显示了每个字段上的单独错误,但是我也想在验证摘要 block 中显示这些错误。但是,该验证摘要仅在提交表单时显示,而不是在失去焦点时显示。
我尝试 Hook showErrors,但是这只给我当前的字段错误,而不是当前的错误列表。
<小时/>为了完整起见,以下是表单代码:
@using (Ajax.BeginForm(...))
{
<div class="field-panel">
@Html.EditorFor(m => m.PatientID)
...
</div>
<input type="submit" class="carecon-button-next" value="Next" />
@Html.ValidationSummary(null, new { @class = "validation-summary" })
}
最佳答案
好吧,我想我已经明白了。
该问题实际上是由于使用 MVC 3 的非侵入式验证造成的,因为它为您进行了 jQuery 验证初始化。因此配置验证的唯一方法是使用 form.data("validator").settings
。但是,尝试通过此方法设置errorLabelContainer
,即:
$("#form").data("validator").settings.errorLabelContainer = "#messageBox";
...不起作用,因为 jQuery 的验证仅在其 init() 函数内部使用此值,以配置一堆其他设置,如Containers等。我尝试模拟它的作用,甚至再次调用 $("#form").data("validator").init()
设置 errorLabelContainer
后,但这样做会导致奇怪的行为并导致一堆其他设置。
所以我采取了不同的方法。首先,我为 MVC 提供了一个位置,可以使用 @Html.ValidationMessageFor()
放入各个错误字符串,并添加 display:none
以使其隐藏:
@using (Ajax.BeginForm(...))
{
<div class="field-panel">
@Html.EditorFor(m => m.PatientID)
@Html.ValidationMessageFor(m => m.PatientID, null, new { style = "display:none"})
...
</div>
<input type="submit" class="carecon-button-next" value="Next" />
<ul id="error-summary">
</ul>
}
然后,在 showErrors
回调中,我在调用 defaultShowErrors()
之后将这些字符串复制到验证摘要中:
$("#form").data("validator").settings.onfocusout = function (element) { $(element).valid(); };
$("#form").data("validator").settings.showErrors = function (errorMap, errorList) {
this.defaultShowErrors();
$("#error-summary").empty();
$(".field-validation-error span", $("#form"))
.clone()
.appendTo("#error-summary")
.wrap("<li>");
};
这给了我想要的行为,当用户填写表单上的字段时,在摘要中显示/隐藏验证错误作为列表。
关于Jquery 验证 - 在急切验证期间显示验证摘要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7935568/
我有一个案例,在大多数情况下,对象之间的关系是这样的,因此在关系上预先配置一个渴望(加入)的负载是有意义的。但是现在我遇到了一种情况,我真的不想完成急切的加载。 我是否应该从关系中删除连接负载并将所有
在我的 Grails 项目中,我有以下类: class A { static hasMany = [cs:C] } class B { static hasMany = [cs:C]
想象一下以下简化的 DI 模型: @ApplicationScoped public class A { private B b; @Inject public A(B b)
我使用 MapLoader 将数据从数据存储初始加载到 Hazelcast (InitialLoadMode = EAGER)。我需要从一个物化 View 中加载这些数据,该 View 是为了在加载过
我使用 Hibernate Envers 4.3.10.Final。我有以下两个 JPA 类: public class Factory { private int factoryID;
EJB 似乎被延迟加载 - 每当访问时。 但是,我想急切地初始化它们 - 即每当容器启动时。这是如何实现的(尤其是在 JBoss 中) This topic给出了一些提示,但不是很令人满意。 最佳答案
我是一名优秀的程序员,十分优秀!