获取html复选框列表选中的值到隐藏字段

时间:2014-10-10 06:23:16

标签: javascript php jquery html yii

如何将选中的复选框ID转入隐藏变量?

我收到此错误。

SyntaxError: unterminated string literal

var test = $('input[name=\'data-grid_c0[]\').val();

data-grid_c0 是复选框数组的名称。

<input type="checkbox" name="data-grid_c0[]" id="data-grid_c0_1" value="1">
<input type="checkbox" name="data-grid_c0[]" id="data-grid_c0_2" value="1">
<input type="checkbox" name="data-grid_c0[]" id="data-grid_c0_3" value="1">

下面是我写的jquery代码。

$('#deleteall-button').click(function () {
   var atLeastOneIsChecked = $('input[name=\"data-grid_c0[]\"]:checked').length > 0;
   var test = $('input[name=\'data-grid_c0[]\').val();

   alert(test);
   if (!atLeastOneIsChecked)
   {
     alert('Please select atleast one record to delete');
   }
   else if (window.confirm('Are you sure you want to delete the records?'))
   {
     document.getElementById('search-form').action = 'index.php?r=device/bulkDelete';
     document.getElementById('search-form').submit();
   }
});

我希望将 data-grid_c0 的值分配给 selectedDevices 隐藏字段。

<form action="hotelSearch/hotelSearch" method="post"><input id="selectedDevices" type="hidden" value="" name="selectedDevices" /><a id="deleteall-button" class="btn btn-primary">Bulk Delete</a></form>

因此,使用php,我将能够按照以下方式处理它并删除,

//check-boxes
if (isset($_POST['selectedDevices'])) { //data-grid_c0
    $del_camps = $_POST['selectedDevices']; //data-grid_c0
    $model_camp = new Device;
    foreach ($del_camps as $_camp_id) {
        $model_camp->deleteByPk($_camp_id);
    }
}

3 个答案:

答案 0 :(得分:4)

您错过了结束]和结束'

var test = $('input[name=\'data-grid_c0[]\').val();

应该成为

var test = $('input[name=\'data-grid_c0[]\']').val();

正如其他人所指出的,你不一定要逃避那些内在的引用。

var test = $('input[name="data-grid_c0[]"]').val();

答案 1 :(得分:2)

您有不正确的选择器来定位已选中复选框,而且您没有正确获取ID。使用:

$('input[name="data-grid_c0[]"]:checked').attr('id');

答案 2 :(得分:2)

此处不一定需要

转义 ,您可以在选择器中使用元字符作为字符串。

var atLeastOneIsChecked = $('input[name="data-grid_c0[]"]:checked').length > 0;
var test = $('input[name="data-grid_c0[]"]').val();

"包裹的片段中使用'会被视为字符串,不要混淆。