layui下拉框獲取值與數據回顯

這兩天做layui的框架項目碰到了下拉框動態賦值與回顯,給大家分享一下
新增:

<div class="layuimini-container">
     <div class="layuimini-main">
        <div class="layui-btn-group">
            <button id="modelAdd" class="layui-btn data-add-btn">添加</button>
        </div>
        <table class="layui-table" id="currentTableId" lay-filter="currentTableFilter"></table>
        <div id="laypage"></div>
        <script type="text/html" id="currentTableBar">
            <a class="layui-btn layui-btn-xs data-count-edit" lay-event="edit">修改</a>
            <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">刪除</a>
        </script>
     </div>
</div>

我的添加功能是觸發modelAdd
2級聯動

layui.use(['form', 'upload', 'table','common', 'element', 'laypage'], function () {
  const $ = layui.jquery
  const table = layui.table
  const common = layui.common
  const layer = layui.layer
  const upload = layui.upload
  const form = layui.form
  const element = layui.element
  const laypage = layui.laypage
  $("#downloadAdd").click(function () {
        layer.open({
            type: 1,
            title: "上傳文件",
            skin: 'layui-layer-rim',
            area: ['500px', '600px'],
            content: '<div style="padding: 20px">\n' +
                '    <form class="layui-form" enctype="multipart/form-data">\n' +
                '		<div class="layui-inline"> \n' +
                '			<label class="layui-form-label">文件類別</label> \n' +
                '			<div class="layui-input-inline"> \n' +
                '  				<select id="modelId" name="modelId" lay-filter="modelId" lay-search="" required lay-verify="required"> \n' +
                '    				<option value="">選擇類型</option> \n' +
                '  				</select> \n' +
                '			</div> \n' +
              	'		</div> \n' +
              	
              	'		<div class="layui-inline"> \n' +
                '			<label class="layui-form-label">選擇分類</label> \n' +
                '			<div class="layui-input-inline"> \n' +
                '  				<select id="categoryId" name="categoryId" lay-filter="categoryId" lay-search="" required lay-verify="required"> \n' +
                '    				<option value="">選擇類型</option> \n' +
                '  				</select> \n' +
                '			</div> \n' +
              	'		</div> \n' +
              	
                '        <div style="text-align: center;margin-top: 30px;">\n' +
                '            <button class="layui-btn layui-btn-normal" id="commit" lay-submit lay-filter="add_download">保存</button>\n' +       
                '		 </div>\n' +
                '    </form>\n' +
                '</div>'
        });
        common.ajaxPost(layui.cache.host + '/model/getByModelName', null, function(res) { //封裝的ajax你們可以自己寫。調用一級下拉列表獲取數據
            if (res.code == '0000') {
                for (var i = 0; i < res.data.length; i++) {
                    $('#modelId').append(new Option(res.data[i].modelName, res.data[i].mid)); //將數據放到option中
                }
            }
            form.render('select');//重新渲染下拉框,如果不重新渲染下拉框是不出來的
        });
        form.on('select(modelId)', function (data) { //二級下拉框
        	debugger;
        	modelId= data.value; //獲取一級下拉框的value值 
        	if(modelId !=null || modelId != ""){
        		$("#categoryId").empty(); //清空二級下拉框列表值
        		common.ajaxPost(layui.cache.host + '/category/getByCategoryName', {"mid":modelId}, function(res) { //查詢二級下拉框列表值,根據一級選的值
                    if (res.code == '0000') {
                        for (var i = 0; i < res.data.length; i++) {
                            $('#categoryId').append(new Option(res.data[i].categoryName, res.data[i].cid)); //將數據放到二及下拉中
                        }
                    }
                    form.render('select');//重新渲染下拉框
                });
        	}else{
        		form.render('select');//如果一級不選擇二級下拉沒有值
        	}
    	});
 	
});

修改回顯:

layer.open({
                type: 1,
                title: "修改下載信息",
                skin: 'layui-layer-rim',
                area: ['500px', '560px'],
                content: '<div style="padding: 20px">\n' +
                    '    <form class="layui-form" enctype="multipart/form-data">\n' +                 
                    '		<div class="layui-inline"> \n' +
                    '			<label class="layui-form-label">文件類別</label> \n' +
                    '			<div class="layui-input-inline"> \n' +
                    '  				<select id="modelId" name="modelId" lay-filter="modelId" lay-search=""required lay-verify="required" > \n' +
                    '    				<option value="">選擇類型</option> \n' +
                    '  				</select> \n' +
                    '<input type="text" id="id" name="id" value="' + obj.data.id + '" style="display:none" class="layui-input"> \n' +
                    '			</div> \n' +
                  	'		</div> \n' +
                  	
                  	'		<div class="layui-inline"> \n' +
                    '			<label class="layui-form-label">選擇分類</label> \n' +
                    '			<div class="layui-input-inline"> \n' +
                    '  				<select id="categoryId" name="categoryId" lay-filter="categoryId" lay-search="" required lay-verify="required"> \n' +
                    '    				<option value="">選擇類型</option> \n' +
                    '  				</select> \n' +
                    '			</div> \n' +
                  	'		</div> \n' +
                  	
                  	'        <div style="text-align: center;margin-top: 30px;">\n' +
                    '            <button class="layui-btn layui-btn-normal" id="commitUpdate" lay-submit lay-filter="update_download">保存</button>\n' +       
                    '		 </div>\n' +
                    '    </form>\n' +
                    '</div>'
            })
        	//類別循環
        	common.ajaxPost(layui.cache.host + '/model/getByModelName', null, function(res) { //查詢一級菜單
                if (res.code == '0000') {
                    for (var i = 0; i < res.data.length; i++) {
                        $('#modelId').append(new Option(res.data[i].modelName, res.data[i].mid));//將數據放到option中
                    }
                    $("#modelId").each(function() { //回顯關鍵
                    	debugger;
                        $(this).children("option").each(function() { //循環讀取
                            if (this.value == obj.data.modelId) { //進行比較
                                $(this).attr("selected","selected"); //選中
                            }
                        });
                    });
                }
                form.render('select');//重新渲染
            });
        	var modelIds = obj.data.modelId;//這個地方是關鍵,獲取列表的;一級菜單的值,因爲要根據一級的id查詢二級 obj.data.modelId是列表你點擊修改將整條數據傳過來的值
        	common.ajaxPost(layui.cache.host + '/category/getByCategoryName', {"mid":modelIds}, function(res) {//查詢二級
                if (res.code == '0000') {
                    for (var i = 0; i < res.data.length; i++) {
                        $('#categoryId').append(new Option(res.data[i].categoryName, res.data[i].cid));//賦值option
                    }
                    $("#categoryId").each(function() {//回顯默認選中狀態
                    	debugger;
                        $(this).children("option").each(function() {
                            if (this.value == obj.data.categoryId) {
                                $(this).attr("selected","selected");
                            }
                        });
                    });
                }
                form.render('select');
            });
            form.on('select(modelId)', function (data) { //重新選中,跟添加的二級菜單一樣
            	debugger;
            	modelId= data.value; //獲取value值
            	if(modelId !=null || modelId != ""){
            		$("#categoryId").empty();
            		common.ajaxPost(layui.cache.host + '/category/getByCategoryName', {"mid":modelId}, function(res) {
                        if (res.code == '0000') {
                            for (var i = 0; i < res.data.length; i++) {
                                $('#categoryId').append(new Option(res.data[i].categoryName, res.data[i].cid));
                            }
                        }
                        form.render('select');
                    });
            	}else{
            		form.render('select');
            	}
        	});

整個新增與修改回顯就完成了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章