jquery使用数据消息属性验证自定义错误元素

jquery使用数据消息属性验证自定义错误元素,jquery,jquery-validate,Jquery,Jquery Validate,我正在使用jquery validate,希望错误元素采用以下格式: 我已经尝试使用errorPlacement和errorElement选项: errorPlacement: function (error, element) { error = error.attr("class", "error-holder").attr("data-error-message", error.text()).text(""); error.insertAfter(ele

我正在使用jquery validate,希望错误元素采用以下格式:

我已经尝试使用errorPlacement和errorElement选项:

errorPlacement: function (error, element) {
        error = error.attr("class", "error-holder").attr("data-error-message", error.text()).text("");
        error.insertAfter(element);
    },
    errorElement: "div"
这将生成正确的错误元素,但在尝试提交表单(包含其他错误)时,每次都会重复错误元素


如何在没有重复项的情况下获得正确的错误元素?

重复可能是由于提前将此错误容器放入HTML标记中,然后尝试将其作为目标

error = error.attr("class", "error-holder").attr("data-error-message", ....
插件会自动在你的错误元素之外创建一个错误元素,并且不知道(找不到)要切换哪个错误元素


您可以将错误容器设置为
div

errorElement: "div"
errorClass: "error-holder"
您可以将错误类别设置为
错误持有者

errorElement: "div"
errorClass: "error-holder"
但是,此插件上没有为错误消息容器设置自定义属性的选项。当插件动态创建并自动切换错误消息时,不清楚为什么需要将错误消息放在属性中

如果您需要自定义错误消息,可以使用各种标准方法来实现这一点,而不需要事先创建静态消息元素

演示:


我首先检查error div是否已经存在,从而解决了这个问题:

errorPlacement: function (error, element) {
        error = error.attr("class", "error-holder").attr("data-error-message", error.text()).text("");
        if ($("div[for=" + element.attr("id") + "]").length == 0) {
            error.insertAfter(element);
        }
    }
由于css中的设计要求,我需要这个特定的错误div


谢谢回复

为什么需要将错误消息放在属性中?这是一个动态创建的元素。请解释为什么不能使用标准方法设置自定义错误消息。这是我为mdbootstrap调整不引人注目的验证所需的缺少的链接,谢谢。:)