在jquery中如何将隐藏在数组中的复选框的值放入?

时间:2014-09-19 08:53:39

标签: javascript jquery

我有“公寓”,“房子”等的复选框。我想将这些复选框的值收集到一个数组中,并使用json将该数组发送到控制器。由于我是jquery的新手,我不知道如何使用jquery将这些值放入数组中?

<script type="text/javascript">
$(document).ready(function () {
    var arr = $("#hiddenroomdetails").val().split(",");
    $('input[type=checkbox]').each(function () {
        if ($.inArray($(this).val(), arr) > -1) {
            $(this).attr("checked", "checked");
        }
    });
});
</script>






$.getJSON('@Url.Action("testcata", "home")' + '?property=' + selectedvalue +"&chkd="+checkedValues       
                       function (data) {

                      //code
                          })

3 个答案:

答案 0 :(得分:4)

使用jQuery执行此操作的常见方法是使用map方法。例如:

var checkedValues = $('.check:checked').map(function() {
    return this.value;
}).get();

演示:http://jsfiddle.net/mgzvm2s2/

答案 1 :(得分:1)

让我们假设您给这些复选框一个名为“selectbox”的类并执行以下代码:

var selected = [];
$('.selectbox').click(function(){
    if(  $.inArray($(this).val(), selected) > -1 ){
        var index = selected.indexOf( $(this).val() );
        selected.splice( index, 1 );
    }
    else {
        selected.push( $(this).val() );
    }
}

单击复选框时将触发事件。然后它检查该值是否已存在于“选定” - 阵列中。如果它存在,则删除它(复选框未选中)。如果它不存在(选中复选框),则会对其进行广告。

然后你可以将“selected”数组传递给json函数

答案 2 :(得分:0)

你可以试试这个:

$('button').click(function() {
  var Arr = [];
   $('.check:checked').map(function() {
      Arr.push(this.value);
   });
  alert(Arr);
  alert(Arr[0]);
})

Check jsfiddle.net