如何检查required
一个部分中 ( ) 输入字段的空值,然后使用 jQuery 在事件中向它们添加一个类?到目前为止,我已经尝试过:
jQuery("#sender_container input.required").val("").addClass("error");
但这似乎是设置值,而不是检查它。有任何想法吗?
如何检查required
一个部分中 ( ) 输入字段的空值,然后使用 jQuery 在事件中向它们添加一个类?到目前为止,我已经尝试过:
jQuery("#sender_container input.required").val("").addClass("error");
但这似乎是设置值,而不是检查它。有任何想法吗?
jQuery("#sender_container input.required").filter(function() {
return !this.value;
}).addClass("error");
为什么你必须使用filter
而不是[value=""]
你可以在这个 DEMO中看到
原因是:属性选择器检查元素的初始状态,而不是当前状态。(请注意,您可以使用该attr
函数更改“初始”状态,但这是不好的做法,您应该始终使用prop
)
因此,如果您更改输入值,当前值不会影响属性选择器。不明智...:)
笔记:
.val()
返回表单元素的值,并打破jQuery链,
$('selector').val().addClass('foo')
Error,返回值为字符串\数字
.val(valueToSet)
设置表单元素的值并且不会破坏 jQuery 链。
$('selector').val("some value").addClass('foo')
-有效,返回值为一个jQuery
$('input:text[value=]','#sender_container').addClass('error');
$('#sender_container input.required[value=""]').addClass('error')
jQuery('#sender_container input.required[value=""]').addClass("error");
你可以试试这个:
$('input:not([value!=""])').addClass('error');
注意:不应使用此答案,它未被删除的唯一原因是可以从中学习。
$field = $("#sender_container input.required");
if( ! $field.val())
{
$field.addClass("error");
}
这种简单的方法可能会奏效。
如果您只需要根据输入的初始属性值进行选择,则可以执行以下操作:
var elements = $('#sender_container input.required[value=""]')
value
但请注意,如果该属性不存在,这将不起作用。如果当前输入值已被用户或脚本更改,它也不适用于当前输入值。
如果您想获取当前输入值,可以使用jquery的filter
功能:
var elements = $('#sender_container input.required').filter(function() {
return this.value === '';
// alternatively for "no value":
// return !this.value;
})
选择jquery元素后,您可以添加您的类:
elements.addClass('error');
要检查所有字段,这可能会有所帮助。
$('#sender_container [required]').each(function(index)
{
if (!($(this).val())) $(this).addClass('error');
}
});