1

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

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

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

4

1 回答 1

8

我正在查看插件中的代码,errorElement选项只是寻找一个元素作为其参数。由于没有回调函数errorElement,我认为没有直接的方法可以在不修改插件本身的情况下实现您的要求。

errorPlacement也许你可以用回调做点什么。

假设将其保留为 alabel然后用其他容器包装?或用于errorElement将它们全部放在 a<span>中,同时在任何容器中动态使用它们errorPlacementwrap请参阅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/>');
        }
    },

演示:http: //jsfiddle.net/uLH4f/

于 2013-03-04T06:38:25.880 回答