我想在我的表单中选择所有需要类且没有值的输入(文本框)。所以我正在使用:
$('input[value=""]', '.required')
我的问题是,即使用户在文本框中输入值,val()也返回该值,但值仍为空,因此我的上面的jquery仍然选择之前为空的所有输入,它不应该。如何选择val为空的所有输入?
答案 0 :(得分:2)
用户编辑后输入的value attribute
和value property
不一样。
使用filter()
并检查值属性......类似于:
var $empties = $('input[required]').filter(function(){
return !this.value;
}).doSomething();
if(!$empties.length){
// process submit
}else{
// prevent submit
}
答案 1 :(得分:2)
首先,使用required
属性捕获每个输入,然后查找没有值的输入。
$('input[required=""]').each(function(){
if (!$(this).val()) {
console.log(this);
//logic
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input required>
<input required>
<input required value='x'>
<input value='y'>
答案 2 :(得分:0)
你仍然可以使用jquery的val()函数
var required_inputs = [];
$('input.required').each(function() {
var $this = $(this);
if ($this.val() == "") {
required_inputs.push($this);
}
})
这样你就拥有了一系列必需的输入元素,这些元素都是空的。你可以执行该功能,例如。关于每个这样的输入的模糊,然后用你想要的那些元素做。
答案 3 :(得分:0)
通过检查return语句中的每个值,可以使用filter()
将val()
的所有输入都清空。
$("#getInputs").click(function() {
var arr = $('input').filter(function() {
return ($(this).val() == '');
});
console.log(arr)
});
input {
display: block;
margin-bottom: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" value="">
<input type="text" value="">
<input type="text" value="">
<input type="text" value="">
<button id="getInputs">Get</button>
答案 4 :(得分:-1)
您可以选择这样,
<强> HTML 强>
<input class="required" />
<input class="required" />
<input class="required" value='x'>
<input value='y'>
<强> JS 强>
$("input:not([value]).required, input[value=''].required")
由于