三級聯動js,jQuery的實現方法
阿新 • • 發佈:2019-01-05
三級聯動(省-市-縣)
1,獲取包含省-市-縣的js檔案:http://download.csdn.net/detail/dengxt/9657613
下載好js檔案,引入到你的工程目錄下,
<script src="widget/phone/sjld.js"></script>
2,三級聯動的選擇框<select></select> 下面是採用jqm框架裡面的一個select
3,初始化:裡面包含註釋的一部分,原本是沒有註釋的,但是在選擇框內容發生變化的時候其他的不能隨著變化,所以只留下一個_init_area()初始化方法與js檔案裡面相對應;<div data-role="fieldcontain"> <label for="job">居住地:</label> <fieldset data-role="controlgroup" data-type="horizontal"> <select id="s_province" name="s_province" data-icon="false" value=""></select> <select id="s_city" name="s_city" data-icon="false" value=""></select> <select id="s_county" name="s_county" data-icon="false" value=""></select> </fieldset> <div id="show"></div> </div>
<script type="text/javascript"> _init_area(); //var Gid = document.getElementById ; //var showArea = function(){ //Gid('show').innerHTML = "<h3>省" + Gid('s_province').value + " - 市" + //Gid('s_city').value + " - 縣/區" + //Gid('s_county').value + "</h3>" //} //Gid('s_county').setAttribute('onchange','showArea()'); </script>
4,
上圖是做好的效果,出現的問題是當點選省的時候縣和市都不發生變化,而點選選擇地級市的時候,縣也不會變化,為此在window.onload(function(){ }); 或者在$().ready(function(){ });加入程式碼:
上面的程式碼解決了相互不關聯的問題。$(document).ready(function(){ var str="{#address#}";//從資料庫獲取的省市縣的字串 $('#s_province').val(str.substring(0,str.indexOf(','))).change(); $('#s_city').val(str.substring(str.indexOf(',')+1,str.lastIndexOf(','))).change(); $('#s_county').val(str.substring(str.lastIndexOf(',')+1)); //上面是從資料庫賦值 $('#s_province').change(function(){ $('#s_city').selectmenu("refresh").change(); //當省發生變化的時候市也發生變化 }); $('#s_city').change(function(){ $('#s_county').selectmenu("refresh"); //當市發生變化得時候縣也發生重新整理變化 }); });