Есть некая форма с 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>
Проверяйте, выбрана ли радио-кнопка, прежде чем совершать манипуляции с 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;
}
}
});
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Здравствуйте! Хотел написать маленькую карточную игрe, застрял в самом начале: на перетаскивании карт по полюЕсть такой код:
ЗдравствуйтеЕсть логика в OnInput, но из-за двух тэгов FORM которые, к сожалению, удалить нельзя, заюзать OnInput невозможно, как правильно решить задачу?...