使用value属性选择所有输入

时间:2017-04-21 14:11:32

标签: javascript jquery html

我想在我的表单中选择所有需要类且没有值的输入(文本框)。所以我正在使用:

$('input[value=""]', '.required')

我的问题是,即使用户在文本框中输入值,val()也返回该值,但值仍为空,因此我的上面的jquery仍然选择之前为空的所有输入,它不应该。如何选择val为空的所有输入?

5 个答案:

答案 0 :(得分:2)

用户编辑后输入的value attributevalue 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")

由于