2015-06-26 3 views
2

У меня есть код ниже. Если есть одна форма на странице, ее работа прекрасна, но если я хочу использовать больше формы, мне нужно определить, что делать, если form1 submit или или если form2 submit. Как я могу это сделать? Я пытаюсь, но не работаю.JQuery select by form id

$(function() { 

$("input,textarea").jqBootstrapValidation({ 
    preventSubmit: true, 
    submitError: function($form, event, errors) { 
     // additional error messages or events 
    }, 
    submitSuccess: function($form, event) { 
     event.preventDefault(); // prevent default submit behaviour 
     // get values from FORM 
     var name = $("input#name").val(); 
     var email = $("input#email").val(); 
     var phone = $("input#phone").val(); 
     var message = $("textarea#message").val(); 
     var firstName = name; // For Success/Failure Message 
     // Check for white space in name for Success/Fail message 
     if (firstName.indexOf(' ') >= 0) { 
      firstName = name.split(' ').slice(0, -1).join(' '); 
     } 
     $.ajax({ 
      url: "././mail/contact_me.php", 
      type: "POST", 
      data: { 
       name: name, 
       phone: phone, 
       email: email, 
       message: message 
      }, 
      cache: false, 
      success: function() { 
       // Success message 
       $('#success').html("<div class='alert alert-success'>"); 
       $('#success > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;") 
        .append("</button>"); 
       $('#success > .alert-success') 
        .append("<strong>Your message has been sent. </strong>"); 
       $('#success > .alert-success') 
        .append('</div>'); 

       //clear all fields 
       $('#contactForm').trigger("reset"); 
      }, 
      error: function() { 
       // Fail message 
       $('#success').html("<div class='alert alert-danger'>"); 
       $('#success > .alert-danger').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;") 
        .append("</button>"); 
       $('#success > .alert-danger').append("<strong>Sorry " + firstName + ", it seems that my mail server is not responding. Please try again later!"); 
       $('#success > .alert-danger').append('</div>'); 
       //clear all fields 
       $('#contactForm').trigger("reset"); 
      }, 
     }) 
    }, 
    filter: function() { 
     return $(this).is(":visible"); 
    }, 
}); 

$("a[data-toggle=\"tab\"]").click(function(e) { 
    e.preventDefault(); 
    $(this).tab("show"); 
}); 

});

+0

Можете ли вы разместить то, что вы пробовали? – Scott

+0

Я попытался получить идентификатор формы и просто выбрать один оператор. – SpeAroX

ответ

0

Я не совсем понял вопрос, но если вы спрашиваете, как поймать представление формы вы будете использовать:

$('#form1').submit(function { 
    $($(this).find("input,textarea")).jqBootstrapValidation({ 
    preventSubmit: true, 
    submitError: function($form, event, errors) { 
    // additional error messages or events 
    }, 
    submitSuccess: function($form, event) { 
     event.preventDefault(); // prevent default submit behaviour 
     // get values from FORM 
     var name = $("input#name").val(); 
     var email = $("input#email").val(); 
     var phone = $("input#phone").val(); 
     var message = $("textarea#message").val(); 
     var firstName = name; // For Success/Failure Message 
    // Check for white space in name for Success/Fail message 
    [...] 
}) 

и

$('#form2').submit(function { 
    [...code...] 
}) 

Если бы вы уточнить, что именно вы хотите сделать, мы можем дать вам лучший ответ.

+0

Да, это то, что я хочу, но я пытаюсь вставить это, но не получится. :/ – SpeAroX

+0

Отметьте мое редактирование @SpeAroX –

+0

Я проверил. Теперь работайте, но проверка ошибок в реальном времени не выполняется. Мне нужно поймать после этого: submitSuccess: function ($ form, event) { – SpeAroX