Получение значения из radio btn

321
02 ноября 2017, 05:50

Есть некая форма с radio.

При некотором событии, функция (ниже) принимает форму и возвращает значение выбранного пункта. Проблема в том, что всегда принимает значение последнего пункта, вне зависимости какой выбран.

Вопрос в том как исправить функцию, чтобы бралось значение выбранного пункта?

// соберет объет вида {name: value, name: value} 
function getFormArray($form) { 
    var formData = {}; 
    var formFill = true; 
 
    $form.find(':input').each(function() { 
        value = $.trim(this.value); 
        if (value.length == 0) { 
            setError($(this)); 
            formFill = false; 
        } else 
            formData[this.name] = value; 
    }); 
    return (!formFill) ? formFill : formData; 
} 
 
console.log(getFormArray($('#form'))); 
 
$(document).on('click', 'input', function() { 
    console.log(getFormArray($('#form'))); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="form"> 
  <input type="radio" name="star" value="1"> 1 
  <input type="radio" name="star" value="2"> 2  
  <input type="text" name="st" value="4"> 3  
  <input type="text" name="sr" value="3"> 4 
  <input type="radio" name="star" value="5"> 5 
</form>

Answer 1

Проверяйте, выбрана ли радио-кнопка, прежде чем совершать манипуляции с this.value.

var formFill = false;
$form.find(':input').each(function() {
    if (this.checked) {
      var value = $.trim(this.value);
      if (value.length == 0) {
        setError($(this));
      } else {
        formData[this.name] = value;
        formFill = true; 
      }
    }
});
READ ALSO
Drag and drop карточек в js

Drag and drop карточек в js

Здравствуйте! Хотел написать маленькую карточную игрe, застрял в самом начале: на перетаскивании карт по полюЕсть такой код:

262
Разделить данные из select

Разделить данные из select

Есть множественный select с группами:

212
Адаптивное изображение svg

Адаптивное изображение svg

Здравствуйте, столкнулся со следующей проблемой:

350
OnInput не работает из-за двух Form, какое решение?

OnInput не работает из-за двух Form, какое решение?

ЗдравствуйтеЕсть логика в OnInput, но из-за двух тэгов FORM которые, к сожалению, удалить нельзя, заюзать OnInput невозможно, как правильно решить задачу?...

375