jQuery выбор переключателей forms

#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. также напишите " like name="form-o" и name="answerN"

Ответ №5:

Вы можете попробовать это, чтобы получить доступ ко всем формам на вашей странице:

$('forms').each(функция(идентификатор){
 console.log(идентификатор,$(this));
});