Javascript / JQuery如何使用属性aria-invalid循环遍历所有html元素

时间:2017-03-29 11:36:10

标签: javascript jquery html ajax validation

我有一些动态的ajax生成形式:

<form id="formThatWillBeReplcaedViaAjax">

  <div class="col-main">

    <div class="row">
       <div class="input-group">
         <input id="some_unique_generated_id_27362"  aria-invalid="false" ... >
       </div>
    </div>

    <div class="row">
       <div class="input-group">
         <input id="some_unique_generated_id_27363"  aria-invalid="false" ... >
       </div>
    </div>

    <div class="row">
       <div class="input-group">
         <input id="some_unique_generated_id_27364"  aria-invalid="false" ... >
       </div>
    </div>

   </div>

</form>

我有一些动画功能(loader())和用下一个表单替换当前表单的函数(requestNextForm()

我想通过使用纯JS或JQuery循环遍历表来检查所有属性aria-invalid是否等于"false"

如果是,则让loader()加载动画,然后通过requestNextForm()请求下一个表单。

我如何使用JQuery或JS或者Lodash?

提前谢谢!

1 个答案:

答案 0 :(得分:1)

  • 使用querySelectorAll
  • 获取属性aria-invalid的所有输入,其值不是“false”
  • usr选择器'input[aria-invalid]:not([aria-invalid="false"])'转换为:返回具有属性aria-invalid的所有输入元素,其值不是“false”
  • 如果以上查询返回任何匹配项,您知道并非所有带有aria-invalid的输入都是“false”

这是代码的样子:

var ariaInvalidNotFalse = document.querySelectorAll('input[aria-invalid]:not([aria-invalid="false"])');

if(ariaInvalidNotFalse.length > 0){
  // Some elements have aria-invalid
  // but with a value that is not false
} else {
  // All inputs with aria-invalid 
  // have it set to "false"
  // Call loader() etc...
}