Jquery - 如何检查div中的所有输入是否都为空?

时间:2016-12-30 15:30:19

标签: javascript jquery html validation

寻找一种简单的方法来验证某个div中所有必需的输入。 换句话说,确保某个div中的所有必需输入都不为空。

以下代码here显示了检查所有输入并确保它们在给定页面上不为空(包括其中只有空格的输入)的方法。

我正在尝试做同样的事情。只是在一个特定的div和所有必需的输入。

$("input").filter(function () {
    return $.trim($(this).val()).length == 0
}).length == 0;

3 个答案:

答案 0 :(得分:4)

您可以做同样的事情,但是您应该更改选择器以仅定位给定div中的输入,并添加[required]选择器以仅选择具有required属性的人:

$("div_selector input[required]").filter(function () {
    return $.trim($(this).val()).length == 0
}).length == 0;

希望这有帮助。

$('button').on('click',function(){
  var result = $("#div_selector input[required]").filter(function () {
    return $.trim($(this).val()).length == 0
  }).length == 0;

  console.log(result);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name='first' required> Required input out of the div 

<div id='div_selector'>
  <input name='second' required> Required input
  <br>
  <input name='Third'>
  <br>
  <input name='Fourth' required> Required input
</div>
<br>
<button>Check</button>

答案 1 :(得分:2)

这是一个简单的单行使用Array.reduce()

$(".your-div input").reduce((allFilled, input) =>
  allFilled && $.trim($(input).val()) !== "", true)

答案 2 :(得分:1)

此方法将匹配输入,选择,textarea等任何输入

var canSubmit = true;
$.each($('.div-in-question').find(':input'), function(element, index){
    canSubmit = canSubmit && ($(element).val() !== '');
});
// at this point canSubmit will be true or false and you can act upon it