2013-10-07 2 views
0

У меня есть страница с несколькими формами. Я могу моделировать нужное поле с помощьюСоздание поля, требуемого при наличии нескольких форм

$('form').submit(function() { 
    var empty_fields = $('input, textarea').filter(function() { 

     //return empty required fields 
     return $(this).attr("required") && $(this).val() === ""; 
    }); 

    // if empty required field stop the form submitting and let the user know 
    if (empty_fields.length) { 
     alert('All required fields must have data'); 
     return false; 
    } 

}); 

Но если есть несколько форм на одной странице и один имеет необходимое поле, то другие формы затронуты.

ответ

4

почему бы не использовать 'это' для ссылки на элемент 'форма' вы переплетены обработчик представить:

$('form').submit(function() { 

    var $this = $(this); // $(this) is the 'form' field tag you binded to 

    var empty_fields = $this.find('input, textarea').filter(function() { 

     //return empty required fields 
     return $(this).attr("required") && $(this).val() === ""; 
    }); 

    // if empty required field stop the form submitting and let the user know 
    if (empty_fields.length) { 
      alert('All required fields must have data'); 
      return false; 
    } 
}); 

так что вы только принимаете меры в области 'это ', который является элементом формы, который вы связываете с отправкой, а затем * найти * введите в него тег ввода и textarea

0

изменить это:

empty_fields = $('form#'+formId+' input, textarea').filter(function(){...}); 
0

сделать это:

$('form').submit(function() { 
    var empty_fields = $('input, textarea').filter(function() { 

     //return empty required fields 
     return $(this).attr("required") && $(this).val() === ""; 
    }); 

    // if empty required field stop the form submitting and let the user know 
    if ($(this).hasClass("form1") && empty_fields.length) { 
     alert('All required fields must have data'); 
     return false; 
    } 

});