css - jQuery 验证使用自定义 div 和 css

标签 css jquery-validate

我有一个 div,我希望登录错误消息进入:

<div id="loginMessage" class="blankBox">&nbsp;</div>

当存在验证错误时,我希望此 div 的类为“errorBox”。当没有验证错误时,我希望 css 为“blankBox”。

我有以下 jQuery 验证:

<script>
    $(function() {
       $("#loginForm").validate({   
            rules: {
                username: "required",
                password: "required"
            },
            messages: {
                username: "Please enter a username",
                password: "Please enter a password",
            },
            errorLabelContainer: "#loginMessage",
            wrapper: "li",
                            highlight: function(element) {
                                $(element).addClass('errorBox');
                            }, 
                            unhighlight: function(element) {
                                $(element).removeClass('errorBox');
                            },
        });
    });
    </script>

不幸的是,errorBox CSS 被应用于输入字段。 ?!?我无法让它工作。

有什么想法吗?

最佳答案

根据您对另一个答案的评论:

"I want the css to be neutral until errors appear in it, and then reset to neutral when errors leave it."

我不知道“中立”是什么意思,但是默认当所有错误都离开容器时,插件会使容器“隐藏”。换句话说,重要的是容器包含错误时的样式,因为只有在其中有错误时才会看到它。否则,它只是隐藏起来。要实现此初始状态,请将样式设置为 display: none;。您还可以设置其他属性,以便在出现错误时使用。 (引用 jsFiddle 示例)。

尽管有其他答案,errorPlacement 在这种情况下并不好。它仅用于放置单独的消息。它与错误容器中的消息无关。

我还删除了您的 highlightunhighlight 回调函数,因为它们是逐个字段触发的,并且与您的错误容器无关. (您还通过用自己的函数覆盖它们来破坏了它们的默认功能。)

演示:http://jsfiddle.net/6dCB7/

jQuery:

$(document).ready(function () {

    $('#loginForm').validate({ // initialize the plugin
        errorLabelContainer: "#loginMessage",
        wrapper: "li",
        rules: {
            // your rules
        }
    });

});

HTML:

<div id="loginMessage"></div>
<form id="loginForm">
    ....
</form>

CSS:

#loginMessage {
    display: none;
    /* also set the properties for when it displays with errors */
}

关于css - jQuery 验证使用自定义 div 和 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15513503/

相关文章:

javascript - 从文本字段设置 Canvas 大小

jquery validate 不适用于多种表单

jquery - 42 是有效的信用卡号码吗? jQuery 验证器认为是

asp.net-mvc - 使用 MVC 和 jQuery 进行内联客户端验证

javascript - 如何检查页面中是否没有或所有文本框都输入了文本?

javascript - 从javascript更改CSS

css - 无法更改 Sharepoint 2013 中 asp 菜单上的字体颜色

javascript - jQuery 从类名中选择一个元素

css - 阿拉伯文本默认为默认字体

javascript - ASP MVC jQuery 验证 onfocusout 有效,但不适用于表单提交