- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 jQuery 验证的表单,使用不显眼的验证来声明规则。目前,我正在使用默认的提交行为,在提交表单之前不会对模糊进行验证(验证表单中的每个字段),之后后续的模糊仅验证模糊字段。
我想更改此行为,以便在提交后,模糊单个字段会重新验证整个表单,以便错误摘要保留在屏幕上,直到每个问题都得到解决。提交之前的行为应保持不变。
我已经根据其他SO答案尝试了以下onfocusout
方法,但没有运气:
onfocusout: function(element, event) {
$(element).valid();
}
和
onfocusout: function(element, event) {
this.element(element);
}
最佳答案
this.element(element)
和 $(element).valid()
均用于触发单个元素的验证。在您的情况下,由于您尝试在 .validate()
或 .setDefaults()
方法的选项内部应用此功能,因此您不能使用 。 valid()
因为它可能会触发无限递归。
剩下.element()
。然而,as per the docs ,您只能在单个字段上使用它,而不能在整个表单上使用。
How to validate the entire form on field blur instead of just the blurred field
I'd like to change this behaviour ... blurring a single field revalidates the entire form
解决方案是编写一个附加到所有相关输入元素的外部 blur
事件处理程序,并触发附加到表单的 .valid()
方法。编辑此通用示例中的选择器以适用于您的特定表单。
$('#myform input[type="text"]').on('blur', function() {
$('#myform').valid(); // <- trigger validation on entire form
});
$('#myform input[type="text"]')
选择 #myform
$('#myform') 选择
表单基于
id="myform"`
关于javascript - 如何在字段模糊时验证整个表单,而不仅仅是模糊字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47270182/
我是一名优秀的程序员,十分优秀!