#javascript #jquery
#javascript #jquery
Вопрос:
У меня возникают трудности с получением определенного ввода из определенной формы. Какие-нибудь советы?
<form id ="frm_addtag-1">
<input type="text" name="tag" id="tag">
</form>
<form id ="frm_addtag-2">
<input type="text" name="tag" id="tag">
</form>
<form id ="frm_addtag-3">
<input type="text" name="tag" id="tag">
</form>
Если отправлен frm_addtag-1, я хочу получить только ввод тега из этой формы, а не из других форм.
Когда я делаю что-то вроде приведенного ниже, он возвращает входные данные тега из любых других форм, независимо от того, какая форма отправлена.
var tag = $("#tag");
var tag = tag.attr("value");
Ответ №1:
Идентификаторы должны быть уникальными.
После изменения идентификаторов используйте .val()
для получения значения элемента.
Кроме того, когда вы отправляете форму, в запрос добавляются только элементы ВНУТРИ этой формы.
Ответ №2:
У вас не может быть нескольких элементов с одинаковым идентификатором на одной странице. Почему бы не сделать что-то вроде этого:
<form id ="frm_addtag-1">
<input type="text" name="tag1" id="tag1">
</form>
<form id ="frm_addtag-2">
<input type="text" name="tag2" id="tag2">
</form>
<form id ="frm_addtag-3">
<input type="text" name="tag3" id="tag3">
</form>
И это для получения значения:
$('form').bind('submit', function(e){ // when any form on the page is submitted
e.preventDefault(); // prevent the actual submit so the browser won't leave the current page
var tag = $('input[name^="tag"]', this).val(); // the value of an input element whose name attribute starts with "tag" and that is a child of the current form
});