我如何检查(空值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')
错误 ,返回值是一个字符串\ 数
.val(valueToSet)
设置形式元素的值,并且不破坏jQuery的链。
$('selector').val("some value").addClass('foo')
- 有效的 ,返回的值是一个jQuery
$('input:text[value=]','#sender_container').addClass('error');
DEMO
$('#sender_container input.required[value=""]').addClass('error')
jQuery('#sender_container input.required[value=""]').addClass("error");
你可以试试这个:
$('input:not([value!=""])').addClass('error');
DEMO
注意:这个答案不应该被使用,并且它不会被删除的唯一理由是,因此可以从中得到教训。
$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');
}
});
对于那些input.required不如下工作写:
jQuery('#sender_container input[required]').val("").addClass("error");