2015-06-08 2 views
0

Я создал «глобальную» ajax-модальную функцию, которая отправляет ajax-запросы со значениями, хранящимися в data-array у родителя #modal-content.Как отправить значение переключателя через AJAX?

Вот как поле HTML выглядит (как пример):

<input data-array='data[]' name='gender' type='radio' value='1' /> 
<input data-array="data[]" type="password" name="password" /> 

Вот как я хранить данные, прежде чем я использовать тх $ .ajax функцию JQuery, чтобы получить все данные каждого входного поля тока модальный:

var data_array = $('#modal-content').find('*[data-array]').map(function(idx, elem) {  
    return elem.value.trim(); 
}).get(); 

Тогда функция $ .ajax выглядит следующим образом:

$.ajax({ 
    type: "POST", url: "ajax_modal.php", dataType: "json", 
    data: { 
     data: data_array, 
     data_case: data_case, 
     id: id, 
     uid: uid, 
     dataString: 'modal_save' 
    }, 
    success: function(data) { 

Итак, массив хранится в data_array, и он отлично работает.

Но теперь у меня есть это поле ввода радио или флажок. Как я могу получить значение в моем массиве, чтобы сохранить его значение в зависимости от того, нажал ли пользователь его или нет?

+0

Любая конкретная причина, по которой вы не можете использовать фактическую 'form.submit'? это похоже на действительно странный способ разобрать форму – BillPull

+0

@BillPull - это перезагрузит страницу. Вопрос спрашивает об Ajax. – Quentin

+0

Флажок или переключатель имеют два состояния: «true» или «false». Если вы зацикливаете эти элементы, вы должны быть хорошими. – DevNebulae

ответ

2

Радиокнопки и флажки имеют свойство checked. Вы должны явно проверить это, если входной элемент, на котором вы находитесь, составляет type.

var data_array = $('#modal-content').find('*[data-array]').map(function(idx, elem) { 
    if (elem.type === 'radio' || elem.type === 'checkbox') { 
     return elem.checked && elem.value; 
    } else { 
     return elem.value.trim(); 
    } 
}).get(); 
Смежные вопросы