与jQuery一起使用时,LiveQuery并非总是活着
-
28-09-2019 - |
题
我使用jquerylive插件将其他CSS类添加到.field-validation-error类中:
$(".field-validation-error").livequery(function () {
$(this).addClass('ui-state-error ui-corner-all');
});
当我通过JQuery生成的此类获得一些跨度。估算上述代码有效,但是在第二个验证下,它没有。
这是实时链接: http://mrgsp.md:8080/awesome/person单击“保存”以获取验证消息后单击创建,然后再次单击保存
解决方案
为什么不将您的功能挂接到触发validate()的同一事件中?
更新
我阅读了其他评论,看到您正在使用xval,在jQuery.validate上也有所阅读。 jQuery.Validate与许多活动进行了估算,并在活动处理程序上注册会很混乱。首次使用LiveQuery工作的原因是,如果标签以前不存在,则会生成这些标签,以便创建事件使函数运行,每次在此之后,标签都被隐藏/显示,因此它不会再次被触发,而是jQuery。验证的ShowLabel函数重置类。
理想的位置是在xval中进行一次小小的变化 xVal.jquery.validate.js
文件。在里面 _ensureFormIsMarkedForValidation
方法是行:
ensureFormIsMarkedForValidation: function(formElement, options) {
if (!formElement.data("isMarkedForValidation")) {
formElement.data("isMarkedForValidation", true);
var validationOptions = {
errorClass: "field-validation-error",
您需要做的就是将错误级别更改为:
errorClass: "field-validation-error ui-state-error ui-corner-all",
这是因为XVAL正在执行验证插件的设置。
其他提示
您不仅可以“错误级别”选项?
$(".selector").validate({
errorClass: "field-validation-error ui-state-error ui-corner-all"
})
或许:
$.validator.setDefaults({
errorClass: "field-validation-error ui-state-error ui-corner-all"
});
不隶属于 StackOverflow