2013-02-06 70 views
0

一个很简单的问题:jQuery的,检查空输入框

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

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

我不敢相信,每个人都是唯一的解决方案。它变得更简单。

编辑:该代码是这样的:

<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"); 
}); 
+0

“最新的jQuery的版本”,意思是1.9或2? –

+0

今天下载,所以这应该是1.9.1 – Remy

回答

0

我能得到这个工作很好,但我还没有看到你的HTML。这有可能是你的input都不具备的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'); 
    } 
}); 
+0

这是检查'value'属性。这不适用于最初空白但有人输入的字段。 –

+0

@JamesMontagne是真实的,但这种情况取决于他何时想要检查它。似乎它会在页面加载,因为检查用户输入内容时应该通过'keydown'事件或类似的方式来完成 –

+0

好吧,我正在到某个地方。正如@ExplosionPills指出的那样,我确实在HTML中忘记了value =“”。詹姆斯蒙塔涅也有一个有趣的观点,因为的确我想用最初的空白字段进行检查,但是用户填写了该字段。看来我上面的解决方案只有在最初设置在HTML中时才起作用。 – Remy