我有“公寓”,“房子”等的复选框。我想将这些复选框的值收集到一个数组中,并使用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
})
答案 0 :(得分:4)
使用jQuery执行此操作的常见方法是使用map
方法。例如:
var checkedValues = $('.check:checked').map(function() {
return this.value;
}).get();
答案 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]);
})