0

一个非常简单的问题:

如果我这样做:$(":input").css("background-color","#ffffff"),结果是所有输入字段都获得白色背景。

逻辑会说$(":input[value=]").css("background-color","#000000"), 会使没有值的输入字段的背景颜色变为黑色,但这不起作用(最新的 jQuery 版本)。我也试过[value='']了,但没有用。

我不敢相信 .each 是唯一的解决方案。它必须更简单。

编辑:代码是这样的:

<form id="frm_Auth" action="javascript:;"> 
   User name: <input type="text" size="10" id="frm_Auth_Username"  value="" />
   Password: <input type="password" size="10" id="frm_Auth_Password" value="" /> 
</form> 

jQuery:

$("#frm_Auth").on("submit", function() 
 { 
   $(":input").css("background-color","#ffffff"); $(":input[value=]").css("background- color","#FFCECE"); 
});
4

1 回答 1

0

我可以让它正常工作,但我还没有看到你的 html。您input的 s 可能根本没有value属性,但您可以使用以下命令进行检查:input:not([value])

http://jsfiddle.net/ExplosionPIlls/GUuQQ/

编辑:如果您想检查是否应该在用户更改值时更新背景,您可以将检查绑定到keyup

$(":input").on('keyup', function () {
    if (!$(this).val()) {
        $(this).css('background-color', 'black');
    }
    else {
        $(this).css('background-color', 'transparent');
    }
});
于 2013-02-06T04:10:44.383 回答