首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >".errorClass“的jQuery验证工作,但类找不到"hasClass()”

".errorClass“的jQuery验证工作,但类找不到"hasClass()”
EN

Stack Overflow用户
提问于 2014-01-06 13:56:10
回答 1查看 528关注 0票数 0

问题

我不是一个程序员,我试图做一些编程。

我尝试使用jQuery-验证插件来控制表单输入,它工作得很好,Bootstrap甚至可以找到“..text危险”类并更改其颜色。

但是,".hasClass()“方法就是不能。

我在for循环中添加了一些"console.log()“函数,用于查找该类。我每次收到的日志消息是“更改”、"hasSmall“、"noClass”。

我在JS代码中犯过错误吗?

请帮帮我。

代码

这在我的HTML表单中:

代码语言:javascript
运行
复制
<div class="form-group">
    <label for="username">Username </label>
    <input type="text" class="form-control" name="username" id="signUpUserName" />
</div>
<div class="form-group">
    <label for="password">Password </label>
    <input type="password" class="form-control" name="password" id="signUpPassword" />
</div>
<div class="form-group">
    <label for="email">Email </label>
    <input type="text" class="form-control" name="email" id="signUpEmail" />
</div>

这是JavaScript:

代码语言:javascript
运行
复制
errorPlacement: function(error, element) {
    var obj = $('[name="'+element.attr('name')+'"]');
    obj.siblings('label').append(error);
},

我在valadate.min.js中更改了一些值:

代码语言:javascript
运行
复制
$.extend($.validator, {

defaults: {
    messages: {},
    groups: {},
    rules: {},

    errorClass: "text-danger", // I've changed this
    validClass: "text-success", // this
    errorElement: "small", // and this

    focusInvalid: true,
    errorContainer: $([]),
    errorLabelContainer: $([]),
    onsubmit: true,
    ignore: ":hidden",
    ignoreTitle: false,

此外,联合来文:

代码语言:javascript
运行
复制
function changeInputAreaStatus(id) {
    $(id).change(function(id) {
        console.log('changed');
        var errorMessageContainer = $(id).siblings('label');
        if(errorMessageContainer.has('small')){
            console.log('hasSmall');
            if (errorMessageContainer.children('small').hasClass('text-danger')) {
                console.log('hasDangerClass');
                errorMessageContainer.parent().removeClass('has-error').addClass('has-error');
            } else if (errorMessageContainer.children('small').hasClass('text-success')) {
                console.log('hasSucessClass');
                errorMessageContainer.parent().removeClass('has-error');
            } else {
                console.log('noClass');
            }
        }
    });
}
    changeInputAreaStatus('#signUpUserName');
    changeInputAreaStatus('#signUpPassword');
    changeInputAreaStatus('#signUpEmail');
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-06 14:26:59

你应该试试这样的方法:

代码语言:javascript
运行
复制
var textSuccess = errorMessageContainer.find('.text-success');
if(textSuccess != null && textSuccess.length > 0){
    console.log('hasSucessClass');
}

它将帮助您验证errorMessageContainer是否有文本成功类。

诚挚的问候

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20951522

复制
相关文章

相似问题

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