jQuery输入颜色更改无法正常运行

时间:2015-08-17 14:49:46

标签: javascript jquery

我试图获取输入字段(按类关联),以便在有内容时更改颜色。

这是有效的,但删除课程并没有正确激活,我不确定原因。如果我将内容输入第一个,然后第二个输入,删除第一个内容,该类将被删除,但是如果我从第一个之前删除第二个内容,则背景保持蓝色。

我无法使用文本框ID,因为它们已在使用中。

JS代码:

 $('.checkFiller').on('change', function () {
     if ($('.checkFiller').length > 0) {
         $(this).addClass('allFiller');
     }
     if ($('.checkFiller').val() == '' || $('.checkFiller').val() == 0 || $('.checkFiller').val() == null) {
         $(this).removeClass('allFiller');
     }
 });

这是一个演绎我的挫败感的方法 - 我做错了什么?

https://jsfiddle.net/qwgj77tm/1/

2 个答案:

答案 0 :(得分:3)

您需要使用this让正在编辑的人使用.hasClass().length来实现此目的

 $('.checkFiller').on('change', function () {
     if($(this).val().length==0){
     	$(this).removeClass('allFiller');
     }else $(this).addClass('allFiller');
 });
.allFiller {
    background-color: #333366;
    color: #ffffff;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="checkFiller">
<input class="checkFiller">
<input class="checkFiller">

答案 1 :(得分:0)

您应该在on:

中将引用从ID Bike_and_Cars Cars_and_Bike Be_01 12 20 Ce_02 6 7 更改为$('.checkFiller')
$(this)

按原样,您正在使用类检查第一个输入,而不是已更改的输入。