要實現連動效果注意兩點:
第一要可以監聽到select的change事件;
第二非同步載入的內容,需要重新渲染後才可以正常使用。
Html結構:
<div class="x-body"> <form class="layui-form" action="" method="post"> <div class="layui-form-item"> <label class="layui-form-label">选择地区</label> <div class="layui-input-inline"> <select name="province" lay-filter="province" id="s_p"> <option value="1">请选择省</option> </select> </div> <div class="layui-input-inline"> <select name="city" lay-filter="city" id="s_c"> <option value="1">请选择市</option> </select> </div> <div class="layui-input-inline"> <select name="area" lay-filter="area" id="s_x"> <option value="1">请选择区/县</option> </select> </div> </div> <div> <label class="layui-form-label">选择地区</label> <div class="layui-input-inline"> <select name="towns" lay-filter="towns" id="s_t"> <option value="1">请选择乡镇/街道</option> </select> </div> <!--<div class="layui-input-inline">--> <!--<select name="burg" lay-filter="burg" id="s_b">--> <!--<option value="1">庄/村</option>--> <!--</select>--> <!--</div>--> </div> </form> </div>
js:
<script type="text/javascript"> layui.use(['form', 'layer', 'laytpl', 'jquery'], function () { var form = layui.form , $ = layui.jquery; var parentId = '0'; $(function () { $.post(serverPath + "sys/area/backProvince/" + parentId, function (result) { var p = result; for (v in p) { var pp = p[v].id; $("#s_p").append("<option value=" + pp + ">" + p[v].fullname + "</option>") } form.render(); }) form.on('select(province)', function (data) { var p = $("#s_p").val(); if (p != "1") { $.post(serverPath + "sys/area/backProvince/" + p, function (result) { var c = result; $("#s_c").html(""); $("#s_c").append("<option value='1'>请选择市</option>"); $("#s_x").html(""); $("#s_x").append("<option value='1'>请选择县/区</option>"); $("#s_t").html(""); $("#s_t").append("<option value='1'>请选择乡镇/街道</option>"); $("#s_b").html(""); $("#s_b").append("<option value='1'>请选择村/街道号</option>"); for (v in c) { var cc = c[v].id; $("#s_c").append("<option value=" + cc + ">" + c[v].fullname + "</option>") } form.render(); }) } }); form.on('select(city)', function (data) { var c = $("#s_c").val(); if (c != "1") { $.post(serverPath + "sys/area/backProvince/" + c, function (result) { var x = result; $("#s_x").html(""); $("#s_x").append("<option value='1'>请选择县/区</option>"); $("#s_t").html(""); $("#s_t").append("<option value='1'>请选择乡镇/街道</option>"); $("#s_b").html(""); $("#s_b").append("<option value='1'>请选择村/街道号</option>"); for (v in x) { var xx = x[v].id; $("#s_x").append("<option value=" + xx + ">" + x[v].fullname + "</option>") } form.render(); }); } }); form.on('select(area)', function (data) { var x = $("#s_x").val(); if (x != "1") { $.post(serverPath + 'sys/area/backProvince/'+ x, function (result) { var t = result; $("#s_t").html(""); $("#s_t").append("<option value='1'>请选择乡镇/街道</option>"); $("#s_b").html(""); $("#s_b").append("<option value='1'>请选择村/街道号</option>"); for (v in t) { var xx = t[v].id; $("#s_t").append("<option value=" + xx + ">" + t[v].fullname + "</option>") } form.render(); }); } }); }); }); </script>
總結:
1、select的chage監聽事件使用
# form.on('select(myselect)', function(data){}) 其中myselect是select的lay-filter屬性值
2、資料非同步載入到select的option之後,點選該select會發現layui的選取效果不起作用,需要使用form.render('select');重新渲染一次,就可以正常使用。
更多layui知識請關注PHP中文網layui教程欄位
以上是基於layui實作select區域聯動的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 Linux新版
SublimeText3 Linux最新版

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。