2015-12-21 49 views
2

我只想在focus.how上选择“请选择”时,才将css class dropdownliststyle添加到下拉菜单中吗?如何使用jquery添加类到dropdownlist取决于选项

,这里是我的jsfiddle链接https://jsfiddle.net/3dj3srxp/

CSS

.DropDownStyle { 
    background-color: red; 
    color: white; 
} 

jQuery的

$(document).ready(function() { 
    $('input[type="text"]').each(function() { 
     $(this).focus(function() { 
     $(this).addClass('textBoxStyle'); 
     }); 

     $(this).blur(function() { 
     $(this).removeClass('textBoxStyle'); 
     }); 
    }); 

    $('select').focus(function() { 
     $(this).addClass('DropDownStyle'); 
    }); 

    $('select').blur(function() { 
     $(this).removeClass('DropDownStyle'); 
     }); 

    }); 
+0

看到我更新的答案...它会更好地使用“更改”功能,并检查值...我在我的答案更新你的小提琴。 – kevindeleon

回答

1

您需要添加一个if语句来检查的值,它实际上会更好地使用更改功能:

$('select').change(function() { 
    if ($(this).val() == "select") { 
    $(this).addClass('DropDownStyle'); 
    } else { 
    $(this).removeClass('DropDownStyle'); 
    } 
}); 

你可以在这里看到小提琴:https://jsfiddle.net/3dj3srxp/3/

0

重点仅适用于输入要素,如果你想改变选择框的颜色也许你会用“变”事件:

$('select').on('change',function() { 
    $(this).removeClass('DropDownStyle'); 

    if($(this).val() == 'select'){ 
    $(this).addClass('DropDownStyle'); 
    } 
}); 
+0

我无法让你的工作。不知道为什么? – rampantNinja

+0

原因是在发布我的答案后,kevindeleon改变了HTML中的某些内容。所以我不得不再次更新我的答案。如果您将此作为验证,我会建议您在用户提交表单时检查插入的值,并在出现错误时避免发布表单。欢呼:) – Franco

2

让我们一行完成。

$('select').on('change', function(){ 
    $(this).toggleClass('DropDownStyle', $(this).val() == 'select'); 
}); 
+0

希望我可以标记多个解决方案作为答案。不同的方式做这件事。谢谢 – rampantNinja

相关问题