首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery-验证错误标签模板

jQuery-验证错误标签模板
EN

Stack Overflow用户
提问于 2015-10-15 16:20:46
回答 1查看 599关注 0票数 0

我试图用这个模板包装错误标签,但没有成功。(http://jqueryvalidation.org/)

代码语言:javascript
复制
<div class="alert alert-error">
    <div class="fx-alert-icon">
        <i class="fxicons fxicons-error"></i>
    </div>
    <div class="fx-alert-desc">
        <label id="input-error" class="has-error" for="input1">
            Input with error!!
        </label>
    </div>
</div>

一种解决方案是更改errorElement,然后在方法中showErrors()更改message,但我对此解决方案感到不舒服.

代码语言:javascript
复制
var errMsgTmpl = '<div class="alert alert-error">' +
                 '<div class="fx-alert-icon">' +
                 ' <i class="fxicons fxicons-error"></i>' +
                 '</div>' +
                 '<div class="fx-alert-desc"><label for="{{LABEL-FOR}}">{{ERROR-MSG}}</label></div>' +
                 '</div>';

$.validator.setDefaults({            
    errorElement: "section", 
    showErrors: function (errorMap, errorList) {
        var i, elements;
        for (i = 0; errorList[i]; i++) {
            errorList[i].message = errMsgTmpl
            .replace(/{{ERROR-MSG}}/, errorList[i].message)
            .replace(/{{LABEL-FOR}}/, $(errorList[i].element).attr('id'));
        }
        this.defaultShowErrors();
    }
});

目前,我的布局没有模板,只使用css,但在某些时候,我的消息可能更复杂,我认为使用模板是最好的选择。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-15 17:15:15

我试图用这个模板包装错误标签,但没有成功。

您不会将元素包装在模板中。您可以将此结构放在页面中,然后使用插件动态地将错误消息元素插入其中。

您还没有说明希望这个新结构相对于input出现在哪里,所以我无法确定正确的DOM遍历技术。默认的label元素放在input之后。

无论如何,您会将各种jQuery DOM遍历方法(如.parents().closest().siblings().next()等)应用于element对象,以将<label>元素(error对象)精确地注入到所需的结构中。

代码语言:javascript
复制
$.validator.setDefaults({
    errorPlacement: function(error, element) {
        error.insertAfter(element);
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33153643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档