2013-12-01 4 views
1

Как получить выбранные значения флажка в списке списка нажатием кнопки?Как получить выбранные значения флажка нажатием кнопки?

Я строю элементы списка динамически, используя jQuery append.

Это код jQuery, который создает элементы списка ... obj_address_list - это массив объектов, каждый из которых будет иметь имя, псевдоним, идентификатор и мобильный. Значение флажка будет выглядеть так: «Имя»

$.each(obj_address_list, function(ctr, obj) { 
    $('#ul_address_list').append('<li data-icon="false">' + 
    '<a href="#" class="add-container">' + 
     '<label class="add-container" data-corners="false">' + 
     '<input name="chk_address" id="chk_address" type="checkbox" value="'+obj.name+'<'+obj.alias+'-'+obj.id+'>'+'" />' + 
     '<label class="lbl_add-container">' + 
      '<h3>'+obj.name+'</h3>' + 
      '<p>'+obj.mobile+'</p></div>' + 
     '</label>' + 
     '</label>' + 
    '</a>' + 
    '</li>'); 
}); 
$("input[name=chk_address]").checkboxradio(); 
$('#ul_address_list').listview('refresh'); 

Найдите под экраном после добавления.

enter image description here

При нажатии кнопки «Отправить» щелкает мне нужно, чтобы захватить все выбранные значения флажка и передать его на другую страницу.

Ниже приведен код, который я пытаюсь использовать при нажатии кнопки отправки. Идентификатором кнопки является «a_send-sms», а идентификатор флажка - «chk_address». Но это, похоже, не работает.

$("#a_send-sms").on("tap",function(e){ 
    e.preventDefault(); 
    var selected = new Array(); 
    $('#chk_address input:checked').each(function() { 
    alert('inside'); 
    selected.push($(this).attr('value')); 
    }); 
    console.log(selected); 
}); 

Что мне не хватает?

+0

Пожалуйста, покажите свой HTML. –

+0

, какую ценность вы хотите получить? номер 999445551? используйте '.val();' вместо '.attr (" value ");' anyway. – Omar

+1

Ваш селектор ошибочен. Try '$ ('ul input: checked')' или '$ (" ul .ui-checkbox ")'. ** Изменить ** у вас есть два атрибута 'value'. – Omar

ответ

2

Как сказал @Sergio, вы не должны использовать один и тот же id для нескольких элементов. Кроме того, ваш селектор $('#chk_address input:checked') ошибочен. jQuery рассмотрит chk_address в качестве родителя и проверит элементы для детей input.

$("#a_send-sms").on("tap",function(e){ 
    e.preventDefault(); 
    var selected = new Array(); 
    $('ul input:checked').each(function() { // or listview id 
    alert('inside'); 
    selected.push($(this).val()); // instead of .attr("value") 
    }); 
    console.log(selected); 
}); 
2

У вас не может быть нескольких ID, ID должно быть быть уникальным. Дайте класс для этих флажков, а затем перебирать их:

$('input.chk_address:checked') 
     ^

Так попробуйте:

$("#a_send-sms").on("tap",function(e){ 
    e.preventDefault(); 
    var selected = new Array(); 
    $('input.chk_address:checked').each(function() { 
    alert('inside'); 
    selected.push(this.value); 
    }); 
    console.log(selected); 
}); 
Смежные вопросы