#jquery #forms #jquery-selectors
#jquery #формы #jquery-селекторы
Вопрос:
У меня есть форма, и я использую ее document.forms["form-0"].answerN[0];
для выбора определенного переключателя, однако мне не удалось сделать это с помощью jQuery.
Я пытался $('forms["form-0"]')
и $('forms[0]')
перейти к форме, но это не сработало, и оба варианта работают с использованием длинного пути..
Ответ №1:
вы можете получить доступ следующим образом (jQuery v1.6)
$('form > input:radio').prop('id');
ДЕМОНСТРАЦИЯ
Обновить
Поскольку вы также можете управлять формой с помощью атрибута name
or id
, вот так
$('form[name="firstForm"] > input:radio').prop('id');
ДЕМОНСТРАЦИЯ
Комментарии:
1.спасибо за демонстрацию, но есть ли способ использовать это с идентификатором формы или именем? он пытался
$('form-0 > input:radio').prop('id');
$('forms[0] > input:radio').prop('id');
$('"form-0" > input:radio').prop('id');
, но ничего не сработало…2. очевидно, что вы можете использовать с form
name
иid
чем угодно. смотрите мой обновленный ответ 🙂3. также вы можете получить доступ к первой форме с помощью
$("form").eq(0)
4. Вы можете получить доступ к форме только по индексу
$("form").eq(1).find('input:radio').prop('id');
// получите доступ ко второй форме, поскольку индекс начинается с 0 , смотрите здесь : jsfiddle.net/xkeshav/ZF27B/5
Ответ №2:
Попробуйте вот так: $("form input:radio")
Для получения дополнительной помощи перейдите по этой ссылке.
Комментарии:
1. есть ли способ использовать идентификатор формы / имя вместо просто
form
?2. @IlyaD
$("#formId input:radio:")
должен сделать.
Ответ №3:
Если у вас есть форма, подобная этой:
<form action="" method="post" id="myForm">
<input type="radio" name="myRadioButton" value="0" class="radio" id="firstRadioButton" /> Value
</form>
вы можете выбирать элементы по их идентификатору:
выбирает переключатель
$("#firstRadioButton)
выбирает форму
$("#myForm")
Или выберите все переключатели:
$("#myForm input.radio").each(function(){
alert($(this).val());
});
И без использования идентификаторов:
HTML:
<form action="" method="post">
<input type="radio" value="1" /> Value 1 <br />
<input type="radio" value="2" /> Value 2 <br />
</form>
jQuery:
alert($("form").first().find("input:radio").first().val());
Пример: Посмотрите здесь
Комментарии:
1. спасибо, это хорошее решение с использованием идентификаторов, но нет ли способа сократить
document.forms["form-0"].answerN[0]
без использования идентификаторов? Кажется, что все остальные ответы создают более длинный код…
Ответ №4:
form-0 — это имя формы. Вы должны написать что-то вроде
$('form[name=form-0]') для выбора формы.
чтобы получить переключатель, вам придется двигаться дальше, чтобы использовать дочерние элементы
итак
$('форма[имя=form-0]').дочерниеэлементы('радио[имя=answerN]: первый потомок')
надеюсь, это должно сработать
Комментарии:
1. вы не знаете, останется ли он дочерним элементом или станет потомком в своем коде, поэтому вам следует использовать «find()» вместо «children()» $(«form[name=’form-0′]»).find(«:radio[name=’answerN’]»)
2. также напишите
"
likename="form-o"
иname="answerN"
Ответ №5:
Вы можете попробовать это, чтобы получить доступ ко всем формам на вашей странице:
$('forms').each(функция(идентификатор){ console.log(идентификатор,$(this)); });