2015-10-01 34 views
2

我有两个具有相同类名的表单。我想检查点击的所有必填字段。 HTML:每个这个对象内使用jquery

<form action="#" id="form_sample_3" class="form-horizontal normalForm1"> 
      <div class="form-group c_name_container"> 
       <div class="col-md-12"> 
        <div class="input-group"> 
         <span class="input-group-addon"> 
          <i class="fa fa-envelope"></i> 
         </span> 
         <input type="text" id="c_name" class="required" placeholder="Type your Name here"/> 
        </div> 
       </div> 
      </div> 
      <div class="form-group c_email_container"> 
       <div class="col-md-12"> 
        <div class="input-group"> 
         <span class="input-group-addon"> 
          <i class="fa fa-envelope"></i> 
         </span> 
         <input type="email" id="c_email" class="required" placeholder="Type your Email Address"> 
        </div> 
       </div> 
      </div> 
      <div class="form-actions"> 
       <div class="row"> 
        <div class="col-md-offset-3 col-md-9"> 
         <button type="button" id="start_chat" class="btn green">Start Chat</button> 
        </div> 
       </div> 
      </div> 
     </form> 

现在,

$(document).on("click", ".normalForm button[type='submit']", function() { 
    // this will refer clicked form having class `normalForm` 
    // Here i want to looping for all .required class. 
    $('.required').each(function(){ 
     // it works fine. but it looping also others .required class of other form in same page. How can I looping only inside my clicked form? 


     }); 
}); 
+0

'$( '#form_sample_3 .required')每个(函数(){...' – ojovirtual

+0

@ojovirtual ** **没有!!!!他希望它在_current_表格上参数化,而不是硬编码的! – Alnitak

回答

2

您应该绑定submit事件form而不是点击提交按钮即可提交form。然后,只需这form内循环对所有.required要素:

$(document).on('submit', '.normalForm', function() { 
    $(this).find('.required').each(function() { 
     /*...*/ 
    }); 
}); 
+1

很好的一点关于在表单上代替“点击”扣除“提交” - 这应该是公认的答案! – Alnitak

1

试试这个:

$('.required', this.form).each(function() { 
    ... 
}; 
+0

另外'$(this.form).find('。required')。each(function(){...});' –

1

我会用:

$(this).closest('form').find('.required').each(...) 

因为this将点击的按钮,而不是形式本身,而this.form是仅HTML5。