Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果没有,则让类更改颜色文本_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如果没有,则让类更改颜色文本

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

我有一个表单,我只想在控制组没有类错误时更改标签颜色,因为当用户在输入中提交无效文本时,控制组div add class.error会显示红色div和红色文本

我试过了!如果不是,但这会覆盖类。添加颜色时出错#222,我不希望此

$(".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中的重要标记。我确实发现对话框消失是因为插件出现问题,它崩溃了。你能帮助我吗?谢谢