设置控制上次选中的回显(多个)

项目场景:

考试系统中为考试试卷设置考试题目,下次进来设置时显示上次选中的试题


问题描述:

数据传输问题,后台需要传给前端查询到所有试题id的list,传list不方便获取,就用了LinkedHashMap

//获取当前试卷选中的试题id    
        List <String> questionIds =  questionCreateService.getAllQuestions(id);
        
        Map<Integer, String> json = new LinkedHashMap<Integer, String>();//使用LinkedHashMap保证顺序
        for (int i = 0; i < questionIds.size(); i++) {
            json.put(i, questionIds.get(i));
        }
        
        model.addAttribute("questionIds",json); 

前端接收

前端html接收时用了一个下拉框将所有的试题id进行接收,并隐藏

<div class="col-sm-8" style="display:none;" >
<select name="typeId" id="typeId" class="form-control"  >
        <option th:each="type:${questionIds}" th:value="${type.key}"                                    th:text="${type.value}"  ></option>				 
 </select>
</div>

js设置选中

在checkbox中添加改变状态

columns : [
	{
	checkbox : true,
	 formatter : stateFormatter
	},

在下面设置回显

//控制上次选中的回显
function stateFormatter(value, row, index) {
	var obj = document.getElementById('typeId');
	 var options = obj.options;
	 for(var i=0,len=options.length;i<len;i++){
	     var opt = options[i];
	     
	     if ( opt.text == row.id){
	 		return {
	 	    	//disabled : false,//设置是否可用
	 	    	checked : true//设置选中
	 	  	};
	 	}
	 }
	
  	return value;
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值