使用jQuery检查输入是否为空
我有一个表单,我希望填写所有字段。如果一个字段被点击进入然后没有填写,我想显示一个红色的背景。
这是我的代码:
$('#apply-form input').blur(function () {
if ($('input:text').is(":empty")) {
$(this).parents('p').addClass('warning');
}
});
它应用警告类而不管填充或不填充字段。
我究竟做错了什么?
$('#apply-form input').blur(function()
{
if( !$(this).val() ) {
$(this).parents('p').addClass('warning');
}
});
而且你不一定需要.length
或者看看它是否>0
因为无论如何空字符串的计算结果都是false,但是如果你想出于可读性的目的:
$('#apply-form input').blur(function()
{
if( $(this).val().length === 0 ) {
$(this).parents('p').addClass('warning');
}
});
如果你确定它总是在textfield元素上运行,那么你可以使用this.value
。
$('#apply-form input').blur(function()
{
if( !this.value ) {
$(this).parents('p').addClass('warning');
}
});
你还应该注意$('input:text')
抓取多个元素,指定一个上下文或者如果你只想引用一个单独的元素(假设上下文的子节点有一个$('input:text')
,就使用this
关键字。
每个人都有正确的想法,但我喜欢更明确一些,并修整价值观。
$('#apply-form input').blur(function() {
if(!$.trim(this.value).length) { // zero-length string AFTER a trim
$(this).parents('p').addClass('warning');
}
});
如果不使用.length,那么输入'0'可能会被标记为坏,并且如果没有$ .trim,则可以将5个空格输入标记为ok。 好运。
对模糊进行处理太有限。 它假设有关于表单域的重点,所以我更愿意在提交时完成它,并通过输入映射。 经过多年的处理花式模糊,焦点等技巧,保持简单的事情将产生更多的可用性。
$('#signupform').submit(function() {
var errors = 0;
$("#signupform :input").map(function(){
if( !$(this).val() ) {
$(this).parents('td').addClass('warning');
errors++;
} else if ($(this).val()) {
$(this).parents('td').removeClass('warning');
}
});
if(errors > 0){
$('#errorwarn').text("All fields are required");
return false;
}
// do the ajax..
});
链接地址: http://www.djcxy.com/p/89937.html
上一篇: Check if inputs are empty using jQuery
下一篇: Error requestAnimationFrame in ie9 any alternate solution