javascript - 如何检查所有其他 div 是否包含输入事件的特定类?

标签 javascript jquery html

我通过代码动态生成了 html,它在浏览器中呈现如下:

        <div class="required">  
        <label class="col-sm-3 control-label text-danger">Contact Details</label>

       <div id="dynamic-contact-details" class="col-sm-4">
         <div id="count0" class="space form-group has-error"><div class="col-sm-4">
        <select id="contact-type0" class="form-control"><option value="">Select</option><option value="Phone">Phone</option><option value="Whatapp">Whatapp</option><option value="Facebook">Facebook</option><option value="Web">Web</option><option value="Fax">Fax</option></select>
      <small id="contact-type0" class="text-danger">Contact Type is Required</small>
     </div>
     <div class="col-sm-7">
          <input type="text" name="contact-type-value0" id="contact-type-value0" class="form-control">
          <small id="contact-type-value0" class="text-danger">Contact Type Value is Required</small>
     </div>
           <button value="count0" class="remove_field btn btn-danger"><i class="fa fa-trash"></i></button>
       </div>
       <div id="count1" class="space form-group has-error"><div class="error">
        <div class="col-sm-4">
         <select id="contact-type1" class="form-control"><option value="">Select</option><option value="Phone">Phone</option><option value="Whatapp">Whatapp</option><option value="Facebook">Facebook</option><option value="Web">Web</option><option value="Fax">Fax</option></select>
       <small id="contact-type1" class="text-danger">Contact Type is Required</small>
       </div><div class="col-sm-7">
         <input type="text" name="contact-type-value1" id="contact-type-value1" class="form-control">
               <small id="contact-type-value1" class="text-danger">Contact Type Value is Required</small>
         </div>
        <button value="count1" class="remove_field btn btn-danger"><i class="fa fa-trash"></i></button>
        </div></div>
      <div id="count2" class="space form-group has-error"><div 
       .... 
      </div>
   </div>
   </div>

请注意,当相应的输入保持空白并单击保存按钮时,has-error 类将附加到 div。当输入被填充时,has-error 类将从 div 中移除。现在我想从标签中删除text-danger 仅当 dynamic-contact-details 中的所有 div 都不包含 有错误 类。

我尝试了以下代码行,但它不起作用。

     $('#dynamic-contact-details').on('change', ':input', function() {
              $(this).closest(".form-group").removeClass("has-error");
              $(this).next('small').addClass('hide');
              if($(this).find('div.has-error').length == 0)
              {
                $(this).closest(".form-group").parent().parent().find(".control-label").removeClass("text-danger");
              }
          });

请帮助我找到更好的方法。

最佳答案

您需要检查 iddynamic-contact-details 的元素内的 has-error 类的长度,以便您需要像这样更改 if 条件:

$('#dynamic-contact-details').on('change', ':input', function() {
    $(this).closest(".form-group").removeClass("has-error");
    $(this).next('small').addClass('hide');
    if($('#dynamic-contact-details').find('.has-error').length == 0)
    {
      $(this).closest(".form-group").parent().parent().find(".control-label").removeClass("text-danger");
    }
});

关于javascript - 如何检查所有其他 div 是否包含输入事件的特定类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48644139/

相关文章:

javascript - 当模态在 w3.css 中滚动时如何隐藏文档垂直滚动条?

javascript - 如何获取 2 个元素之间的文本

javascript - 在更改该图像父元素的大小的同时自动以原始比例更改图像大小

javascript - div 显示自动生成的内联样式

javascript - 我怎样才能使网页上的任何地方都可以点击并导航到一个地址而不使整个页面成为一个链接?

javascript - iMacro JavaScript 提取值

html - 构建响应式图像网格

javascript - 如果通过 JavaScript 自动输入值,jQuery Validate 不会消除错误

javascript - 用户名小于4个字符时如何设置CustomValidity?

javascript - 如何对js中的错误进行分类?