今天遇到的一个问题是需要向后台传送多选框即具有checkbox属性的input表单控件的值,需要分别获取选中和未选中的值然后拼成字符串后传递给后台,我的解决办法如下:
首先需要做的是分别创建两个数组,然后使用jquery来定位选中和未选中的input控件,获取方式是,选中的input控件的checked属性是checked,因此可以直接使用过滤方法冒号加checked来获取,而未选中的input控件我们可以通过取反的方式来获得,即使用not(:checked)的方式来定位,然后使用each()方法循环添加到数组中,最后使用数组的join方法将元素连接即可。源代码如下:
$('#doc-search').on('click',function(){
var
check_array = new Array(),
uncheck_array = new Array();
$('.tag-search input:checked').each(function(){
check_array.push($(this).val());
});
$('.tag-search input:not(:checked)').each(function(){
uncheck_array.push($(this).val());
});
selected_tags = check_array.join(';');
unselected_tags = uncheck_array.join(';');
alert(unselected_tags);
});
对于select标签也是类似的情况,我们可以通过:selected的方式来筛选被选中的option。