jQuery Validate插件动态选择error元素

时间:2013-03-04 06:32:29

标签: jquery jquery-validate

我正在使用jQuery Validation Plugin,我希望能够根据有错误的元素类型动态确定errorElement。我知道你可以这样errorElement

$("form").validate({
    errorElement: "div"
});

但是,我希望能够更改它,以便如果类型是复选框或单选按钮,那么我可以将errorElement设为li。有谁知道如何做到这一点?谢谢!

1 个答案:

答案 0 :(得分:8)

我正在查看the code in the pluginerrorElement选项只是查找元素作为参数。由于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/>');
        }
    },

DEMO:http://jsfiddle.net/uLH4f/