2015-10-01 2 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 можно отправить без нажатия кнопки отправки. Тогда не просто перебираем все .required элементов внутри этого form:.

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

очень хорошая точка об улавливании 'submit' в форме вместо' click' на кнопке - это должен быть принятый ответ! – 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.

Смежные вопросы