解决:<form:select multiple=“true“>form表单下拉框多选及回显

4 篇文章 0 订阅

开发需求中遇到了一个下拉框多选及回显js问题,最终解决!

页面效果

因为框架较老,这部分筛选是使用from表单请求的,所以多选框回显有些复杂,最终页面效果是如下:
在这里插入图片描述
在这里插入图片描述

代码示例

jsp页面代码:

<!--因为项目使用是jeesite,这里使用from:select,根据自己所需选择-->
<!--注意:multiple="true" 属性是实现多选必须要加的属性,-->
 <form:form id="searchForm" modelAttribute="loanBalance" action="${ctx}/trust/loanBalance/" method="post" >
	<form:select path="procds"  id="productSelect"  class="input-xlarge required" multiple="true" >
	</form:select>
	<input id="searchForm" class="btn btn-primary" type="submit" value="查询"/>
</form:from>

js代码:

/**加载页面触发**/
$(document).ready(function() {

 /**items="${loanProcds}"
  Controller使用model传的值,直接放js获取,
  注意~此处数据类型为String[] 使用foreach循环获取 **/
   var stb = new Array();
 <c:forEach var="item" items="${loanProcds}" varStatus="s">
 stb[${s.index}] = ${item};
 </c:forEach>
  getLoanProduct(stb);	  

$("#productSelect").on("select2-removed", function (e) {
    getLoanProduct();//多选框每次变化都会调用此方法
 });
  $("#productSelect").click(function (){
                getLoanProduct();
 });
)}



 function getLoanProduct(stb){
            var insuranceId= $("#bankSelect").val();
            var procds =$("#productSelect").val()
            if(stb!=null) {
                procds = stb;
            }
            var procdsStr;
            if (procds != null) {
                procdsStr = "'" + procds.join("','") + "'";
            }else {
                procdsStr = "";
            }
            //console.log("procdsStr"+procdsStr)
            //使用ajax局部刷新
            $.ajax({
                type: "POST",
                url: "/a/b/listJson",
                data: {
                    insuranceOrg: insuranceId,
                    planInfoId: procdsStr
                },
                success: function (data) {
                    var html="";
                    for (var i = 0; i < data.length; i++) {
                    //循环拼接option选项
                        html += "<option value='"+data[i].loanProductCode+"'>"+data[i].loanProductCode+'--'+data[i].loanProductName+"</option>"
                    }
                    //添加至html中
                    $("#productSelect").html(html)

                    if (procds != null) {
                    //注意~~~~数据回显
                       $("#productSelect").val(procds).trigger("change");

                    }
                }
            });
        }

controller控制层代码:

    @RequestMapping(value = {"list", ""})
    public String list(LoanBalance loanBalance, HttpServletRequest request, HttpServletResponse response, Model model) {
   		//只粘贴使用到的代码,其他代码按照业务需求写
        String[] procds = loanBalance.getProcds();
        model.addAttribute("loanProcds",procds);
        //返回页面
        return "modules/trust/loanBalanceList";
    }


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>异常记录</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="wrapper"> <div id="menu"> <ul> <li><a href="/">首页</a></li> <li><a href="/index2">登记数据</a></li> <li><a href="/history">查询数据</a></li> <li><a href="/chart">查询数据</a></li> </ul> </div> <div id="main"> <h1>异常记录登记</h1> <form method="post" action="/submit"> <div class="form-row"> <label for="line">确认线别:</label> <input name="line" class="layui-input" placeholder="请选择线别" /> </div> <div class="form-row"> <label for="date">确认日期:</label> <input type="date" name="date" id="date" /> </div> <div class="form-row"> <label for="model">异常机种:</label> <input type="text" name="model" id="model" placeholder="请输入机种"/> </div> <div class="form-row"> <label for="prod_line">异常现象:</label> <input type="text" name="prod_line" id="prod_line" placeholder="请输入现象"> </div> <div class="form-row"> <label for="prod_date">生产日期:</label> <input type="date" name="prod_date" id="prod_date"> </div> <div class="form-row"> <label for="shift">生产班别:</label> <select name="shift" id="shift"> <option value="白班">白班</option> <option value="夜班">夜班</option> </select> </div> <div class="form-row"> <label for="prod_line_2">生产线别:</label> <input type="text" name="prod_line_2" id="prod_line_2"> </div> <div class="form-row"> <label for="responsible">责任人:</label> <input type="text" name="responsible" id="responsible" placeholder="请输入责任人"> </div> <div class="form-row"> <button type="submit">提交</button> </div> </form> </div> </div> </body> </html>
06-11

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值