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;

vxe-form是一个基于Vue.js的表单组件库,其包含了多种表单元素,包括下拉框(select)。 使用vxe-form下拉框非常简单。首先,需要引入相关的组件。 在Vue的模板,通过使用vxe-form-item组件包裹下拉框来创建表单项,例如: <vxe-form-item label="性别"> <vxe-select v-model="gender" placeholder="请选择性别"> <vxe-option label="男" value="male"></vxe-option> <vxe-option label="女" value="female"></vxe-option> <vxe-option label="其他" value="other"></vxe-option> </vxe-select> </vxe-form-item> 在上述代码,我们通过vxe-form-item设置表单项的Label为“性别”,并且使用了v-model指令将下拉框的选择绑定到data的gender变量上,使得选择的能够在Vue实例进行使用。 在vxe-select,我们将每个选项都使用vxe-option组件包裹,其label属性设置了选项的展示文本,value属性设置了选项的。 通过上述代码,我们就成功地创建了一个具有下拉框表单项。当用户在下拉框进行选择时,Vue实例对应的gender变量会被更新为所选的。 除了上述基本的使用方式外,vxe-form下拉框还支持更多的配置。可以通过设置disabled属性来禁用下拉框设置clearable属性来显示清除按钮,设置filterable属性来启用可搜索的下拉框等等。 总之,vxe-form下拉框使用简单方便,通过设置v-model绑定数据实现数据的双向绑定,可以满足常见的下拉选择需求。同时,通过配置属性,可以进一步定制下拉框的功能和外观。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值