jQuery验证的“.errorClass”工作但“hasClass()”找不到该类(“.errorClass” of jQuery validate works but the class cann

编程入门 行业动态 更新时间:2024-10-21 16:40:19
jQuery验证的“.errorClass”工作但“hasClass()”找不到该类(“.errorClass” of jQuery validate works but the class cannot be found by “hasClass()”)

问题

我不是程序员,我正在尝试编程。

我尝试使用jQuery-validate插件来控制表单输入,它工作得很好,Bootstrap甚至可以找到“.text-danger”类并改变它的'颜色。

但是,“。hasClass()”方法就是不行。

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

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

请帮帮我。

这是在我的HTML表单中:

<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:

errorPlacement: function(error, element) { var obj = $('[name="'+element.attr('name')+'"]'); obj.siblings('label').append(error); },

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

$.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,

另外,JS:

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');

Problem

I'm not a programmer and I'm trying to do some programming.

I tried to use jQuery-validate plug-in to control the form input, it works perfectly, Bootstrap can even find the ".text-danger" class and change its' color.

However, the ".hasClass()" method just can't.

I put some "console.log()" functions in the for loops which are used to find this class. The log messages I received every time are "changed", "hasSmall", "noClass".

Have I made mistakes in the JS code?

Please help me out.

Code

This is within my HTML form:

<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>

This is the JavaScript:

errorPlacement: function(error, element) { var obj = $('[name="'+element.attr('name')+'"]'); obj.siblings('label').append(error); },

I have changed some values in the valadate.min.js:

$.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,

Also, JS:

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');

最满意答案

你应该尝试这样的事情:

var textSuccess = errorMessageContainer.find('.text-success'); if(textSuccess != null && textSuccess.length > 0){ console.log('hasSucessClass'); }

它应该可以帮助您验证errorMessageContainer是否具有文本成功类。

最好的祝福

You should try something like this :

var textSuccess = errorMessageContainer.find('.text-success'); if(textSuccess != null && textSuccess.length > 0){ console.log('hasSucessClass'); }

it should help you to verify if errorMessageContainer has a text-success class.

Best regards

更多推荐

本文发布于:2023-07-26 15:45:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1277514.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:找不到   工作   jQuery   errorClass   hasClass

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!