问题
我不是程序员,我正在尝试编程。
我尝试使用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
更多推荐
发布评论