1. 程式人生 > >三級聯動js,jQuery的實現方法

三級聯動js,jQuery的實現方法

三級聯動(省-市-縣)

     1,獲取包含省-市-縣的js檔案:http://download.csdn.net/detail/dengxt/9657613

         下載好js檔案,引入到你的工程目錄下,

             <script src="widget/phone/sjld.js"></script>

     2,三級聯動的選擇框<select></select>    下面是採用jqm框架裡面的一個select 
          <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>

     3,初始化:裡面包含註釋的一部分,原本是沒有註釋的,但是在選擇框內容發生變化的時候其他的不能隨著變化,所以只留下一個_init_area()初始化方法與js檔案裡面相對應;             
            <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"); //當市發生變化得時候縣也發生重新整理變化
        });
      });
        上面的程式碼解決了相互不關聯的問題。