Как получить значения флажков в jQuery

     $item) { //it may give warning because empty array (i.e items = [].
             $keywords[$i] = $item['keyword']; // this will store keyword in $keywords array.
             $i++;
          }
        }
        $message = '';
        $message .= '';
        $message .= "";
        foreach ($keywords as $key => $value) {
           $message .= "";
        }
        $message .= "
Sr. No.: Keyword
".$key." " .$value. "
"; $message .= ""; echo $message; ?>

Конструкция foreach обеспечивает простой способ перебора массивов. foreach работает только с массивами и объектами и выдает ошибку при попытке использовать его для переменной с другим типом данных или неинициализированной переменной.

239
задан user86745458 2 November 2014 в 16:36
поделиться

7 ответов

Вот тот, который работает (, см. Пример ):

 function updateTextArea() {         
     var allVals = [];
     $('#c_b :checked').each(function() {
       allVals.push($(this).val());
     });
     $('#t').val(allVals);
  }
 $(function() {
   $('#c_b input').click(updateTextArea);
   updateTextArea();
 });

Обновление

Через несколько месяцев был задан другой вопрос о том, как сохранить работоспособность вышеупомянутого, если идентификатор изменяется. Итак, решение сводится к тому, чтобы отобразить функцию updateTextArea в нечто общее, использующее классы CSS, и использовать функцию live для мониторинга DOM на предмет этих изменений.

317
ответ дан 23 November 2019 в 03:19
поделиться

Если вы хотите сразу ввести значение любого флажка во время его проверки, то это должно работать для вас:

$(":checkbox").click(function(){
  $("#id").text(this.value)
})
0
ответ дан 23 November 2019 в 03:19
поделиться

В любом случае, вам, вероятно, понадобится что-то вроде этого:

 var val = $('#c_b :checkbox').is(':checked').val();
 $('#t').val( val );

Это получит значение первого установленного флажка на странице и вставит его в текстовое поле с id = 'textarea' .

Обратите внимание, что в вашем примере кода вы должны поставить флажки в форме.

2
ответ дан 23 November 2019 в 03:19
поделиться
$("#t").text($("#cb").find(":checked").val())
2
ответ дан 23 November 2019 в 03:19
поделиться

Ваш вопрос довольно расплывчатый, но я думаю, что это то, что вам нужно:

$(function() { 
    $('input[type="checkbox"]').bind('click',function() {
        if($(this).is(':checked')) {
            $('#some_textarea').html($(this).val());
         }
   });
});

Редактировать: О, ладно ... поехали ... У вас не было HTML до В любом случае, да, я думал, что вы хотели поместить значение в текстовое поле, когда на него нажимают. Если вы хотите, чтобы значения отмеченных флажков помещались в текстовое поле (возможно, с хорошим разделением запятыми) при загрузке страницы, это было бы так просто:

$(function() { 
    $('#c_b input[type="checkbox"]:checked').each(function() { 
        $('#t').append(', '+$(this).val());
    });
});

Редактировать 2 Как это сделали люди, вы также можете сделать это для сокращения длинного селектора, который я написал:

$('#c_b :checkbox:checked').each(function() {
    $('#t').append(', '+$(this).val());
});

... Я полностью забыл об этом ярлыке. ;)

65
ответ дан 23 November 2019 в 03:19
поделиться
   $(document).ready(function() {
        $(':checkbox').click(function(){
           var cObj = $(this);
           var cVal = cObj.val();
           var tObj = $('#t');
           var tVal = tObj.val();
           if( cObj.attr("checked")) {
              tVal = tVal + "," + cVal; 
              $('#t').attr("value", tVal);
           } else {
              //TODO remove unchecked value.
           }
        });
    });
3
ответ дан 23 November 2019 в 03:19
поделиться

Спасибо altCognito, ваше решение помогло. Мы также можем сделать это, используя названия флажков:

function updateTextArea() {         
   var allVals = [];
   $('[name=chkbox]:checked').each(function() {
      allVals.push($(this).val());
   });
   $('#t').val(allVals)
} 
$(function() { 
    $('#c_b input').click(updateTextArea);
    updateTextArea();
});
8
ответ дан 23 November 2019 в 03:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: