Попытка найти выбранную радио-кнопку. В чем дело? - PullRequest
5 голосов
/ 02 мая 2011

Я могу прочитать значения текстового поля, но когда я пытаюсь найти выбранную радиокнопку, я ничего не получаю.

$(document).ready(function(){

    $("form#create_form").submit(function() {

    var title      = $('#title').attr('value');
    var owner      = $('#owner').attr('value');
    var users      = $('#users').attr('value');
    var groups     = $('#groups').attr('value');
    var begin_date = $('#begin_date').attr('value');
    var end_date   = $('#end_date').attr('value');

    // get selected radio button 
    var type = '';
    for (i=0; i<document.forms[0].type.length; i++) {
        if (document.forms[0].type[i].checked) {
        type = document.forms[0].type[i].value;
        }
    }

HTML:

<div class="create-new">
  <form id="create_form" name="create_form" action="" method="post">
  ...
  <input name="type" id="type" value="individuel" type="radio" /> Individuel <br/>
  <input name="type" id="type" value="course"     type="radio" /> Course <br/>

  <button class="n" type="submit">Create</button>
  </form>

Что я делаю не так?

1 Ответ

2 голосов
/ 02 мая 2011

Я бы предложил альтернативный способ получения выбранной радиокнопки (поскольку вы уже используете jQuery):

$('input:radio[name=type]:checked').val();

Это решение является примером .val () .

Приведенное выше решение является гораздо более кратким, и вы избежите любых конфликтов в будущем, если будут добавлены другие формы (то есть вы можете избежать потенциально опасных document.forms[0]).

Обновление

Я проверил вашу оригинальную функцию со следующей скрипкой, и она работает:

http://jsfiddle.net/nujh2/

Единственное изменение, которое я сделал, было добавление var передпеременной цикла i.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...