我有一个表格,我希望填写所有字段。如果单击某个字段然后未填写,我想显示红色背景。
这是我的代码:
$('#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,但如果您想出于可读性目的:
.length
>0
$('#apply-form input').blur(function() { if( $(this).val().length === 0 ) { $(this).parents('p').addClass('warning'); } });
如果您确定它将始终在文本字段元素上运行,那么您可以使用this.value.
this.value
$('#apply-form input').blur(function() { if( !this.value ) { $(this).parents('p').addClass('warning'); } });
此外,如果您只想引用一个单独的元素(假设上下文的后代/子代中有一个文本字段),您还应该注意$('input:text')抓取多个元素,指定一个上下文或使用关键字。this
$('input:text')
this