如何获取输入值以进行验证

时间:2020-07-13 10:36:29

标签: jquery arrays input

我有表格

<div class = "required">
 <div class = 'myclass'>
  <input type="text" name="login" id="login" value="" class="anotherclass">
 </div>
</div>
<div class = "required">
 <div class = 'myclass'>
  <input type="text" name="pass" id="pass" value="" class="anotherclass">
 </div>
</div>
<div class>
 <div class = 'myclass'>
  <input type="text" name="comment" id="comment" value="" class="anotherclass">
 </div>
</div>

我想要获取所有具有“必需”类的元素,并在此div中获取输入值,然后是有效值。我可以通过id获得一个元素的值,但是我想尝试获得由父母班级选择的孩子的值。我得到了数组

 var form = $('.required :input')

但是我无法获得输入值。使用数组索引或每个返回错误。

 form[0].val();

Uncaught TypeError: form[0].val is not a function

请帮助我,我在哪里错了?

2 个答案:

答案 0 :(得分:1)

您需要使用循环来从jQuery对象的集合中分别检索每个输入的值。为此,您可以使用each()val()

$('.required :input').each(function() {
  let val = $(this).val();
  console.log(val);
  
  // validate here...
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="required">
  <div class="myclass">
    <input type="text" name="login" id="login" value="lorem" class="anotherclass">
  </div>
</div>
<div class="required">
  <div class="myclass">
    <input type="text" name="pass" id="pass" value="ipsum" class="anotherclass">
  </div>
</div>
<div class>
  <div class="myclass">
    <input type="text" name="comment" id="commnt" value="dolor" class="anotherclass">
  </div>
</div>

关于您看到的错误,这是因为按索引访问jQuery对象,即; $('.foo')[0]返回一个Element对象,而不是jQuery对象,并且它们没有val()方法。

答案 1 :(得分:1)

使用类似于[0]的方括号将jquery对象转换为DOMElement。因此,您需要使用以下语法之一:

JavaScript:

 form[0].value

或继续使用Jquery:

 form.eq(0).val()
相关问题