Java 表单提交下拉框_Java实现Layui的form表单动态绑定下拉框

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

Java实现Layui的form表单动态绑定下拉框

【1】视图层

爱好:

立即提交

重置

$(function () {

//【1】加载&初始化layui模块-弹出层与table数据表格

layui.use(["layer","form"], function () {

varlayer = layui.layer;

var form= layui.form;

});

//取消异步

$.ajaxSettings.async = false;

addoption();//下拉框绑定

//开启异步

$.ajaxSettings.async = true;

});

//下拉框绑定

function addoption(){

$.post("${ctx}/web/UserInforServlet",{"method":"selectHobby"}, function (obj) {

console.log(obj);

$("#hobbyID").empty();

$("#hobbyID").append("" + "----请选择----" + "");

for ( var i = 0; i

$("#hobbyID").append("" + obj.data[i].hobby + "");

//每次动态添加下拉框都要重新手动渲染一次

form.render();

}

},"json");

}

1)使用getJSON返回的数据是object的对象

64af3fc103e86b9288f60890e470d548.png

2)使用ajax返回的数据是字符串类型

76a197f487eb00c797dc891c61e705b7.png

3)可以使用JSON.parse将字符串转换成对象

data=JSON.parse(data);

【2】控制器

注意我引用json-lib-2.4-jdk15.jar将数据转换为json格式

@WebServlet("/web/UserInforServlet")

publicclass UserInforServlet extends HttpServlet{

private IuserService is=new UserServiceImpl();

publicvoid doGet(HttpServletRequest request,HttpServletResponse response)throws IOException {

this.doPost(request, response);

}

publicvoid doPost(HttpServletRequest request,HttpServletResponse response) throws IOException {

String method= request.getParameter("method");

if("selectHobby".equals(method)){

System.out.println("selectHobby");

selectHobby(request,response);

}

}

publicvoid selectHobby(HttpServletRequest request,HttpServletResponseresponse) throws IOException {

//【1】设置编码

request.setCharacterEncoding("utf-8");

response.setCharacterEncoding("utf-8");

response.setContentType("text/html;charset=UTF-8");//处理响应编码

List lists=is.selectHobby();

PrintWriter out =response.getWriter();

//转换json格式数据

JSONObject jsonObj=new JSONObject();

jsonObj.put("data",lists);

out.write(jsonObj.toString());

out.flush();

out.close();

}

}

【3】Layui动态绑定下拉框不能显示的问题

1)Layui动态绑定下拉框不能显示的原因:

layui表单模块的表单元素:select、checkbox、radio都是依赖于layui.form模块的自动渲染,前提是必须给表单体系所在的父元素加上class="layui-form"。如果表单元素动态插入就会导致form模块 的自动化渲染是会对其失效。

2)解决方法-重新渲染

var form= layui.form;

$.getJSON("${ctx}/web/UserInforServlet?method=selectHobby", function(obj) {

$("#hobbyID").empty();

$("#hobbyID").append("" + "----请选择----" + "");

for( var i = 0; i < obj.data.length;i++) {

$("#hobbyID").append("" + obj.data[i].hobby + "");

//每次动态添加下拉框都要重新手动渲染一次

form.render();

}

});

});

});

3)下拉框有时候加载不了数据的解决方法

//取消异步

$.ajaxSettings.async = false;

addoption();//下拉框绑定

//开启异步

$.ajaxSettings.async = true;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值