cy
2022-06-21 129904537f66509f97b285e7eb4f42b3dc349dd0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
jQuery.fn.ssq = function(opts){
    var settings = $.extend({
        pre:''
    },opts||{});
    return this.each(function(indx,elem){
        var panel = $(this);
        function loadSheng(d){
            $(".sheng",panel).empty().append("<option value=\"\">请选择省</option>");
            $(".shi",panel).empty().append("<option value=\"\">请选择市</option>");
            $(".qu",panel).empty().append("<option value=\"\">请选择县/区</option>");
              $.get(settings.pre+"/interface/datadictionary/getAreaList.html",{},function(data){
                      var html = "<option value=\"\">请选择省</option>";
                      for(var i=0;i<data.length;i++){
                          html = html + "<option value=\"" + data[i]["ID"] + "\"" + (d&&d==data[i]["ID"]?"selected=\"true\"":"") + ">" + data[i]["ADDRESS_NAME"] + "</option>";
                      }
                      $(".sheng",panel).empty().append(html);
                      initName($(".sheng",panel),1);
              },'json');
          }
          function loadShi(p,d){
            var html = "<option value=\"\">请选择市</option>";
            if(p!="") {
                  $(".qu",panel).empty().append("<option value=\"-1\">请选择县/区</option>");
                  $.get(settings.pre+"/interface/datadictionary/getAreaList.html",{"fatherid":p},function(data){
                          for(var i=0;i<data.length;i++){
                              html = html + "<option value=\"" + data[i]["ID"] + "\"" + (d&&d==data[i]["ID"]?"selected=\"true\"":"") + ">" + data[i]["ADDRESS_NAME"] + "</option>";
                          }
                          $(".shi",panel).empty().append(html);
                          loadQu("");
                          initName($(".shi",panel),2);
                  },'json');
            } else {
               $(".shi",panel).empty().append(html);
               loadQu("");
               initName($(".shi",panel),2);
            }
          }
          function loadQu(c,d){
            var html = "<option value=\"\">请选择县/区</option>";
            if(c!="") {
                  $.get(settings.pre+"/interface/datadictionary/getAreaList.html",{"fatherid":c},function(data){
                          for(var i=0;i<data.length;i++){
                              html = html + "<option value=\"" + data[i]["ID"] + "\"" + (d&&d==data[i]["ID"]?"selected=\"true\"":"") + ">" + data[i]["ADDRESS_NAME"] + "</option>";
                          }
                          $(".qu",panel).empty().append(html);
                          initName($(".qu",panel),3);
                  },'json');
            }
          }
          
          function initName(elem,i) {
                      if(settings.callback) {
                        var data;
                        var v = elem.find("option:selected").val();
                        if(v=="") {
                           data == "";
                        } else {
                           data = elem.find("option:selected").text();
                        }
                        settings.callback(i,data);
                      }
          }
          //初始化默认值为0
          var def = {sheng:"",shi:"",qu:""};
          //判断各下拉框是否有def属性,如果有,则认为是默认值,获取
          if($(".sheng",panel).attr("def"))def.sheng = $(".sheng",panel).attr("def");
          if($(".shi",panel).attr("def"))def.shi = $(".shi",panel).attr("def");
          if($(".qu",panel).attr("def"))def.qu = $(".qu",panel).attr("def");
          if($(".sheng",panel).attr("def")&& $(".shi",panel).attr("def") && $(".qu",panel).attr("def")) {
          loadSheng(def.sheng);loadShi(def.sheng,def.shi);loadQu(def.shi,def.qu);
          } else {
          loadSheng(def.sheng);
          }
          
          //绑定事件
          $(".sheng",panel).change(function(){
              initName($(this),1);
              return function(p){
                  loadShi(p.val());
              }($(this));
          });
          
          $(".shi",panel).change(function(){
              initName($(this),2);
              return function(c){
                  loadQu(c.val());
              }($(this));
          });
          
          $(".qu",panel).change(function(){
              initName($(this),3);
          });
    });
};