js选择checkbox值,组织成key-value形式,传值到后台

最近项目中遇到这样一个问题,接口定义需要传一个Map<String,String[]> params的参数,需要在jsp页面组织数据到后台操作,所以记下来以后难免还会用到。

以下是javascript代码:

	var jsonData = new Array(); //定义一个用来作传递数据变量	
	var temp =[];//该变量是为了判断最后一次循环而定义 
	$("input[name='waybillNo']:checked").each(function(){ //遍历所有checkbox选中的值
		temp.push($(this).val());//设置值到数组中
	});	

	$("input[name='waybillNo']:checked").each(function(index,element){//遍历运单号
		temp.length--;

		var waybillNos = new Array();
		var carIds = new Array();
		
		waybillNos.push($(this).val()); //添加运单号到waybillNos数组
		
		$(this).parent().next().next().find("input[name='carIds']:checked").each(function(){//遍历车辆ID
			carIds.push($(this).val());//添加车辆ID到carIds数组
		});
		
		if(temp.length !=0){
			jsonData.push(waybillNos+":"+carIds+"|");//组织数据
		}else{//最后一次循环
			jsonData.push(waybillNos+":"+carIds);//组织数据
		}
		waybillNos = [];//清空数组,准备下一次循环
	});
	
	//发送ajax请求
	$.ajax({
           type: "post",
           url: "${pageContext.request.contextPath}/waybill/auth/updateStatus.do",
           data:"param="+jsonData,
           dataType: "POST",
           success: function(data){
			if(data.success){
				alert("操作成功!");
			}else{
				alert("操作失败!");
			}	            	
           },
            error: function(){
            	alert("系统异常,请联系管理员!");
            }
       });

后台用springMVC接受参数param,代码如下:

<span style="white-space:pre">	</span>/**
	 * 后台Java方法
	 * @author yunns
	 * @date 2015-8-12 下午2:44:35 
	 * @version V1.0
	 */
	@RequestMapping("/auth/updateWaybillStatus.do")
	@ResponseBody
	public Map<String,Object> updateStatus(String param)throws Exception{
		Map<String,Object> model = new HashMap<String, Object>();
		Map<String,String[]> params = new HashMap<String, String[]>();
		try {	
			String paramData = param.replace("|,", "|");//替换字符串
			//组织数据
			String[] s1 = paramData.split("\\|");
			for (String s : s1) {
				String[] s2 = s.split(":");
				String[] carIds = s2[1].split(",");
				params.put(s2[0], carIds);
			}
			waybillBaseService.confirmDriverWaybill(params, SecurityHelper.getAccountName());
			this.setSuccessFlag(model);
		} catch (Exception e) {
			this.setFailFlag(model);
			logger.error("修改状态出错!", e);
		}
		return model;
	}




好的,以下是一个简单的例子: 首先,在你的Vue组件中引入el-checkbox组件: ```javascript <template> <el-checkbox-group v-model="checkedList"> <el-checkbox v-for="item in options" :label="item.value" :key="item.id"> {{ item.label }} </el-checkbox> </el-checkbox-group> </template> <script> export default { data() { return { checkedList: [], // 选中的将存储在这个数组中 options: [ { id: 1, label: '选项1', value: 'option1' }, { id: 2, label: '选项2', value: 'option2' }, { id: 3, label: '选项3', value: 'option3' } ] } } } </script> ``` 在上面的代码中,我们使用了el-checkbox-group和el-checkbox组件来创建多选框。我们使用v-model指令将选中的存储在checkedList数组中。在el-checkbox组件中,我们使用label属性来指定每个选项的。 接下来,我们可以在组件中使用computed属性来获取选中的: ```javascript computed: { selectedOptions() { return this.options.filter(option => this.checkedList.indexOf(option.value) !== -1) } } ``` 在上面的代码中,我们使用filter()方法过滤出选中的选项,并将它们存储在selectedOptions数组中。 最后,我们可以在模板中使用selectedOptions数组来显示选中的选项: ```javascript <template> <div> <el-checkbox-group v-model="checkedList"> <el-checkbox v-for="item in options" :label="item.value" :key="item.id"> {{ item.label }} </el-checkbox> </el-checkbox-group> <div v-if="selectedOptions.length > 0"> <h4>选中的选项:</h4> <ul> <li v-for="option in selectedOptions" :key="option.id">{{ option.label }}</li> </ul> </div> </div> </template> ``` 在上面的代码中,我们使用v-if指令来检查selectedOptions数组是否为空,如果不为空,则显示选中的选项列表。我们使用v-for指令来循环遍历selectedOptions数组,并显示每个选项的标签。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值