Основная проблема в том, что атрибуты id
должны быть уникальными. Поскольку вы повторяете их на протяжении HTML как на form
, так и на входах электронной почты, будут найдены только первые экземпляры каждого из них.
Чтобы исправить эту проблему, измените их на атрибуты class
. Оттуда вы можете использовать обход DOM, чтобы найти элементы, связанные с формой, которая была отправлена, чтобы получить необходимые данные. Попробуйте это:
jQuery(function($) {
$('.my_form').on('submit', function(e) {
e.preventDefault();
var $form = $(this);
var email = $form.find('input[name="email"]').val();
$form.find('.loader').show();
$.ajax({
type: "POST",
url: 'xml.php',
data: { email: email },
success: function(data) {
console.log(data);
$form.find('.loader').hide();
}
});
});
});
.loader {
display: none;
}
<form class="my_form">
Your Email Address: <input type="text" name="email" /><br>
<button type="submit">Submit</button>
<div class="loader">
<img src="images/loader.gif" />
</div>
</form>
<form class="my_form">
Your Email Address: <input type="text" name="email" /><br>
<button type="submit">Submit</button>
<div class="loader">
<img src="images/loader.gif" />
</div>
</form>
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>