我正在使用jQuery Validation Plugin,我希望能够根据有错误的元素类型动态确定errorElement
。我知道你可以这样errorElement
:
$("form").validate({
errorElement: "div"
});
但是,我希望能够更改它,以便如果类型是复选框或单选按钮,那么我可以将errorElement
设为li
。有谁知道如何做到这一点?谢谢!
答案 0 :(得分:8)
我正在查看the code in the plugin,errorElement
选项只是查找元素作为参数。由于errorElement
没有回调函数,我认为没有直接的方法来实现你的要求而不修改插件本身。
也许您可以使用errorPlacement
回调做点什么。
让我们假设它只是一个label
,然后用其他容器包装它?或者使用errorElement
将它们全部放在<span>
内,同时在任何容器中动态使用errorPlacement
wrap
。请参阅jQuery .wrap()
。
errorElement: 'span',
errorPlacement: function (error, element) {
var type = $(element).attr("type");
if (type === "radio") {
// custom placement
error.insertAfter(element).wrap('<li/>');
} else if (type === "checkbox") {
// custom placement
error.insertAfter(element).wrap('<li/>');
} else {
error.insertAfter(element).wrap('<div/>');
}
},