Установите значение переключателя на значение другого поля ввода в Jquery - PullRequest
1 голос
/ 10 августа 2011

У меня есть несколько наборов радиокнопок, последняя из которых представляет собой «другое» поле, в котором пользователь может указать свой «другой» ответ.

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

Это мой HTML:

<fieldset>
    <h3>We are online via ...</h3>
    <label for="online_via[1]">
        <input type="radio" name="online_via" id="online_via[1]" value="laptop" /> Laptop
    </label>
    <label for="online_via[2]">
        <input type="radio" name="online_via" id="online_via[2]" value="desktop" /> Desktop
    </label>
    <label for="online_via[3]">
        <input type="radio" name="online_via" id="online_via[3]" value="mobile" /> GSM, Smartphone, PDA
    </label>
    <label for="online_via[4]">
        <input type="radio" name="online_via" id="online_via[4]" alue="tablet" /> Tablet
    </label>
    <label for="online_via[other]">
        <input type="radio" name="online_via" id="online_via[other]" value="other" /> Other, specify: <input type="text" id="online_via[specified]" class="other" />
    </label>
</fieldset>

Как вы можете видеть, последняя радио-кнопка содержит в своем теге label вход [type = "text"]. Я хотел бы взять значение этого и использовать его в качестве значения другого переключателя. Вот что я пробовал в Jquery:

$(function(){
    $('.other').keyup(function(){
      var radio = $(this).attr('id').replace('specified','other');
      $('input#' + radio).attr("value", $(this).val());
      console.log($('input#' + radio).val());
    });
});

Я продолжаю получать "undefined". Что я делаю неправильно? JQuery джедаев объединяйтесь!

P.S .: Пожалуйста, имейте в виду, что у меня есть несколько наборов радиокнопок. PPS: причина, по которой у поля #online_via [указано] нет атрибута имени, заключается в том, что я хотел бы игнорировать его при публикации данных, поскольку я хочу сохранить его значение в поле #online_via [другое]. *

Ждем ваших ответов.

Ответы [ 2 ]

1 голос
/ 10 августа 2011
$(function(){
    $('.other').keyup(function(){
      $(this).parent().find('input[type=radio]').val($(this).val());
    });
});

Будет ли это сделать для вас?

0 голосов
/ 10 августа 2011

сделайте это сначала:

<label for="online_via[other]">
        <input type="radio" class="otherClass" name="online_via" id="online_via[other]" value="other" /> Other, specify: <input type="text" id="online_via[specified]" class="other" />
    </label>

, затем:

$('.other').keyup(function(){

      $('.otherClass').val($(this).val());
      console.log($('.otherClass').val());
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...