У меня есть форма с тем же именем

Я пытаюсь отправить форму ajax с помощью jQuery в моей форме html с теми же именами и значениями deffirent, но что происходит, когда я отправляю форму, мой аякс не будет работать, и он будет отправлен на #. кто-нибудь может объяснить мне почему?

моя форма HTML:

<form name="Form" action="#" method="POST">
 
 <button type="submit">btn 1</button>
</form>

<form name="Form" action="#" method="POST">
 
 <button type="submit">btn 2</button>
</form>

это мой аякс:

$(document).ready(function() {
 $("form[name=form]").submit(function(e){
 e.preventDefault()
 $.ajax ({
 type: "POST",
 url: "ajax/post.php",
 data: $(this).serialize(),
 success: function(data) {
 alert(data)
 }
 });
 });
});

жаль моих английских парней

1 ответ

Form не совпадает с form. Ваш селектор не соответствует формам, поскольку значения селектора атрибутов чувствительны к регистру.

Измените $("form[name=form]") на $("form[name=Form]").

Вы можете доказать это, сравнив alert($("form[name=form]").length); для alert($("form[name=Form]").length);

Обратите внимание, однако, что атрибут name для элементов формы должен содержать уникальное значение, поэтому вместо этого следует переключиться на использование атрибута class (тогда вы можете использовать селектор классов (form.Form).

licensed under cc by-sa 3.0 with attribution.