jQuery 验证器错误放置

jQuery validator errorplacement

我的jQuery有以下代码:

highlight: function(element, errorClass, validClass) {
            $(element).addClass(errorClass).addClass('errorImage').removeClass(validClass).removeClass('validImage');
            if($(element.form).find("input[type=radio") == true) {
                $(element.form).find("input[id=" + element.id + "]").addClass(errorClass).addClass('errorImageRadio');  
            }else{
                $(element.form).find("input[id=" + element.id + "]").addClass(errorClass).addClass('errorImage');
            }
            },

我正在尝试的是,如果输入类型是单选框或复选框,它基本上应该使用不同的 class,我在这里遗漏了一些东西,不确定那是什么。

它是 jQuery 验证器插件的一部分。

jQuery 对象总是真实的,如果你想测试 jQuery 对象是否匹配任何 DOM 元素,使用 .length 属性。

您的 .find() 查询中还缺少一个方括号:

而不是

if($(element.form).find("input[type=radio") == true)

尝试:

if($(element.form).find("input[type=radio]").length)

对于它的价值(相当多),您应该使用 ID 选择器通过 ID 选择器来定位元素,而不是属性选择器。由于您已经在变量中包含 DOM 元素,因此您可以将其包装在 jQuery 对象中:

$(element.form).find("input[id=" + element.id + "]").addClas...

变成

$(element).addClas...

等等...