Javascript 如果没有,则让类更改颜色文本
我有一个表单,我只想在控制组没有类错误时更改标签颜色,因为当用户在输入中提交无效文本时,控制组div add class.error会显示红色div和红色文本 我试过了!如果不是,但这会覆盖类。添加颜色时出错#222,我不希望此Javascript 如果没有,则让类更改颜色文本,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个表单,我只想在控制组没有类错误时更改标签颜色,因为当用户在输入中提交无效文本时,控制组div add class.error会显示红色div和红色文本 我试过了!如果不是,但这会覆盖类。添加颜色时出错#222,我不希望此 $(".form-control").focus(function () { if (!$(this).parent().parent().parent().is('.error')) { $(this).parent().parent().cs
$(".form-control").focus(function () {
if (!$(this).parent().parent().parent().is('.error')) {
$(this).parent().parent().css({
color: '#222 !important;'
});
}
}).blur(function () {
if (!$(this).parent().parent().parent().is('.error')) {
$(this).parent().parent().css({
color: '#ccc !important;'
});
}
})
表格的HTML代码:
<form class="form-horizontal" id="myform" novalidate="">
<div class="control-group">
<label class="control-label" for="name">Nombre</label>
<div class="controls">
<input type="name" class="form-control" data-validation-required-message="Debes escribir tu nombre" name="name" id="name" required="true" aria-invalid="true">
</div>
</div>
<div class="control-group">
<label class="control-label" for="email">Correo electrónico</label>
<div class="controls">
<input type="email" class="form-control" data-validation-required-message="No has escrito correctamente el correo electrónico" name="email" id="email" required="" aria-invalid="true">
</div>
</div>
<div class="control-group">
<label class="control-label" for="emailAgain">Correo electrónico (otra vez)</label>
<div class="controls">
<input type="email" data-validation-matches-match="email" data-validation-matches-message="Los correos electrónicos no coinciden" class="form-control" data-validation-required-message="Debes escribir el mismo correo electrónico" required="true" id="emailAgain" name="emailAgain" aria-invalid="false">
</div>
</div>
<div class="control-group">
<label class="control-label" for="terms-and-conditions">Advertencia legal</label>
<div class="controls">
<label class="checkbox">
<input type="checkbox" id="terms-and-conditions" name="terms-and-conditions" required="" data-validation-required-message="Debes estar de acuerdo con los términos y condiciones" aria-invalid="true">
Estoy de acuerdo con los <a id="legal" data-content="CoolFitness se reserva el derecho a usar dicho correo para realizar análisis estadísticos que sin duda te beneficiarán." rel="popover" data-placement="right" data-original-title="Términos y condiciones" data-trigger="hover" href="#">términos y condiciones</a>
</label>
</div>
</div>
<div class="control-group">
<label class="control-label">Información sobre</label>
<div class="controls">
<label class="checkbox">
<input type="checkbox" name="qualityControl[]" value="dietas" data-validation-minchecked-minchecked="1" data-validation-minchecked-message="Elige una al menos" aria-invalid="true">
Dietas
</label>
<label class="checkbox">
<input type="checkbox" name="qualityControl[]" value="ej-fitness" aria-invalid="false">
Ejercicios Fitness
</label>
<label class="checkbox">
<input type="checkbox" name="qualityControl[]" value="encuestas" aria-invalid="false">
Encuestas
</label>
</div>
</div>
<div class="modal-footer">
<button id="btnSave" type="submit" class="btn btn-success modalbtn">Guardar cambios</button>
<button id="btnClose" type="button" class="btn btn-default modalbtn cancel" data-dismiss="modal">Cerrar</button>
</div>
<audio>
<source src="sounds/correct.mp3"></source>
</audio>
</form>
名义
科雷奥电气公司
科雷奥·伊莱克托·尼科(奥特拉·维兹)
法律广告
埃斯托德阿库尔多酒店
索布雷信息
迪塔斯
电子结肠适应度
恩库斯塔斯
瓜达尔坎比奥斯酒店
塞拉
您只需使用CSS就可以做到这一点
label {color:blue;}
.error label {color:red;}
.form-control {color:#ccc;}
.form-control:focus {color:#222;}
.error .form-control:focus {color:red;}
更新:你的问题并不完全清楚你的需求是什么。在您的评论之后,我认为您希望在聚焦(未出错)字段时更改标签的颜色。如果是这种情况,请尝试以下JS:
$(".form-control").focus(function(){
$(this).parents(".control-group:not(.error)").find("label").css("color","#222");
}).blur(function () {
$(this).parents(".control-group:not(.error)").find("label").css("color","#ccc");
})
更新:仍在努力理解您的需求。
这个 您需要的是.hasClass()
来检查元素是否具有所需的sepcific类
因此,您的检查代码可以如下所示:
if (!$(this).parent().parent().parent().hasClass('error')) {
$(this).parent().parent().css({
color: '#222'
});
}
检查下面的fiddle,您将看到您的代码与hasClass()一起工作。文本的颜色将在聚焦时变为灰色,在模糊时变为黑色
重要提示:删除!重要信息
使用jquery.css()应用的css中的标记。它不会将css应用于带有它的元素
请在问题中添加HTML代码。想明白你的意思有点困难。你可以使用例如:。not(“.error”)
但是。not正在将我的颜色:#ccc应用于我的。控制组错误。我把它放在:$(“.form control”).focus(function(){if($(this.parent().parent().parent().not('.error')){$(this.parent().parent().parent().css({color:'.'222;'});}}.blur(function(){if($(this.parent().parent().parent().parent().not('.error')){$(this.parent().parent().parent().css().css({color:'ccc!important;})})})但我想处理焦点上的标签文本颜色,而不是输入文本颜色。它工作正常,但覆盖控制组。错误并删除类。应用颜色文本更改时出错…我不明白。它不会覆盖任何类。你想这样吗?对不起,我真的不知道你想达到什么目的。当你关注一个字段时,.error
框会发生什么?好的,我发现插件关注delete的error类,检查页面官方示例中控制组中的html:reactiveraven.github.io/jqBootstrapValidation/如何解决此问题而不删除类错误?我尝试过,但hasclass会覆盖我的错误类。如果我关注输入,验证失败。没有hasclass不会覆盖任何类。hasClass仅检查类。addClass()可以添加其他类。另外,在使用hasClass()时是否在类名前使用了点?它将覆盖.error类,您可以在此处应用它吗?是的,已更新。您需要删除该文件!你应用的css中的重要标记。我确实发现对话框消失是因为插件出现问题,它崩溃了。你能帮助我吗?谢谢