特效介绍

省市三级联动js插件
使用方法
1、在您的css文件引入下面的css代码:
*{ margin:0; padding:0; }
.ui-input { padding: 6px 5px; width: 100px; height: 16px; line-height: 16px; border: 1px solid #d7d7d7; color: #555; vertical-align: middle; outline: none; }
.ui-input-ph { color: #999;font-family:微软雅黑; }
.ui-input:hover { border: 1px solid #ed7220; }
.ui-input:focus, .ui-input-focus { border: 1px solid #ed7220; }
.ui-input-dis{ background: #f0f0f0; color: #999; }
.ui-input-dis:hover{border-color:#ddd;box-shadow:none;}
.dizhi { width:100%; /*height:123px;*/ float:left; margin:10px 0;}
.dizhi .dizhi_s { width:503px; /*height:123px;*/ border:1px solid #ddd; background:#fffbff; float:left;}
.dizhi .dizhi_s .dizhi_s_1 { padding:10px 0px 0px; height:30px;}
.dizhi .dizhi_s .dizhi_s_1 .dizhi_s_1_1 { width:203px; /*height:30px;*/ float:left;}
.dizhi .dizhi_s .dizhi_s_1 .dizhi_s_1_1 b { width:80px; text-align:right; float:left; line-height:28px;}
.dizhi .dizhi_s .dizhi_s_1 .dizhi_s_1_1 .ui-search { float:left; width:155px;}
.dizhi .dizhi_s .dizhi_s_2 { padding:5px 10px 5px; height:30px;}
.dizhi .dizhi_s .dizhi_s_2 .dizhi_s_2_1 { /*height:30px;*/ float:left;}
.dizhi .dizhi_s .dizhi_s_2 .dizhi_s_2_1 b { width:70px; text-align:right; float:left; line-height:28px;}
.dizhi .dizhi_s .dizhi_s_2 .dizhi_s_2_1 .ui-search { float:left; width:155px;}
.dizhi .dizhi_s .dizhi_s_2 .dizhi_s_2_1 .dizhi_city { cursor:pointer; color:#999 ; text-align:left;}
.dizhi_city{ cursor:pointer; color:#999 !important; text-align:left;}
.dizhi .dizhi_s .dizhi_s_2 .dizhi_s_2_1 .dizhi_city:hover { border:1px solid #D7D7D7;}
.dizhi_t {left:0; width:286px; height:-234px; background:#fff; border:1px solid #ed7220;position:absolute;z-index:1000;display:none;font-size: 12px;line-height: 19px;color:rgb(102, 102, 102);}
.dizhi_t .dizhi_t_1{ width:286px; height:22px; background:#ff8b3d; float:left;}
.dizhi_t .dizhi_t_1 p { cursor:pointer;width:70px; height:22px; float:left; font-weight:bold; color:#FFF; text-align:center;}
.dizhi_t .dizhi_t_1 .hover { cursor:pointer;background:#FFF; color:#ff8b3d;width:68px;}
.dizhi_t .dizhi_t_2 { width:286px; height:auto; float:left;}
.dizhi_t .dizhi_t_2 .dizhi_t_2_1 { width:38px; height:30px; float:left; text-align:center;color:#ff8b3d; cursor:pointer; line-height:30px}
.dizhi_t .dizhi_t_2 .dizhi_t_2_2 { width:248px; height:auto; float:left;}
.dizhi_t .dizhi_t_2 .dizhi_t_2_2 p{white-space:nowrap; width:40px; height:30px;float:left; cursor:pointer;line-height:30px; text-align:center;margin-bottom: 0px;}
.dizhi_t .dizhi_t_2 .dizhi_t_2_2 p:hover { color: #ff8b3d;background:#fbfbfb;}
2、在head引入相关js:
<script src="https://5.jimth.com/tpl/js/jquery-1.8.3.min.js"></script> <script src="js/area.js" type="text/javascript"></script>3、在需要使用本省市县三级联动插件的地方加入下面的代码:
<div class="manage-wrapper"> <input value="请选择城市" type="text" class="ui-input dizhi_city" id="city" autocomplete="off" readonly="" style="width:180px;"> </div>4、在</body>前面加入下面的代码:
<script>
function AdrInputPopDiv(){
this.init=function(inpuId, isAbsolute) {
var dizhiDiv = null;
var initInput = null;
if (isAbsolute){
$(".manage-wrapper").append($(provinceObjectDiv).html());
var dizhiDiv = $(".manage-wrapper").children(".dizhi_t");
dizhiDiv.css('margin-left','70px');
$(".manage-wrapper").on("click", ".dizhi_city", function(e){
var curThis = $(this);
var top = curThis.offset().top + curThis.outerHeight();
var left = curThis.offset().left - curThis.outerWidth() / 2 + 24;
dizhiDiv.css({top:top, left:left});
if (initInput && curThis.offset().top != initInput.offset().top && dizhiDiv.is(":visible")){
dizhiDiv.hide();
}
dizhiDiv.toggle();//.css("display", "block");
initInput = $(this);
});
}else{
initInput = $("#" + inpuId);
//$(".dizhi_t").appendTo(initInput.parent());
//initInput.parent().append($(".dizhi_t").parent().html());
//display: inline-block;
var _wrap = $('<span style="position:relative;padding:0;z-index:995"></span>');
initInput.wrap(_wrap);
initInput.parent().append($(provinceObjectDiv).html()).closest('div').css('overflow','visible');
dizhiDiv = initInput.parent().children(".dizhi_t");
initInput.click(function(e){
var dizhiClsDiv = initInput.closest(".dizhi");
if (dizhiClsDiv.length > 0){
var dizhiPar = $("#consignee", dizhiClsDiv).parent();
if (dizhiPar.hasClass("errorWrap")){
dizhiPar.css("z-index", 996);
}
dizhiPar = $("#consignAdr", dizhiClsDiv).parent();
if (dizhiPar.hasClass("errorWrap")){
dizhiPar.css("z-index", 994);
}
dizhiPar = $("#consignPhone", dizhiClsDiv).parent();
if (dizhiPar.hasClass("errorWrap")){
dizhiPar.css("z-index", 993);
}
//dizhiPar = $("#initConsignAdrCity", dizhiClsDiv).parent();
//dizhiPar.css("z-index", 995).css("display", "");
}
dizhiDiv.toggle();//.css("display", "block");
});
}
dizhiDiv.on('click', '.dizhi_t_1 p', function(e){
var idx = $(this).attr("idx");
$(this).parent().find("p").removeClass("hover");
dizhiDiv.find(".province").css("display", "none");
dizhiDiv.find(".city").css("display", "none");
dizhiDiv.find(".area").css("display", "none");
if (idx == 1){
$(this).addClass("hover");
dizhiDiv.find(".province").css("display", "block");
}else if(idx == 2){
$(this).addClass("hover");
dizhiDiv.find(".city").css("display", "block");
}else if(idx == 3){
$(this).addClass("hover");
dizhiDiv.find(".area").css("display", "block");
}else if(idx == 4){
$(this).addClass("hover");
initInput.val("请选择城市");
initInput.attr("请选择城市");
initInput.trigger("click");
dizhiDiv.find('.dizhi_t_1 p[idx=1]').trigger("click");
}
});
var selPro = "";
var selCity = "";
var proFullName = {"北京":"北京", "天津":"天津", "内蒙古":"内蒙古自治区", "上海":"上海"
, "广西":"广西壮族自治区", "重庆":"重庆", "西藏":"西藏自治区", "宁夏":"宁夏回族自治区"
, "新疆":"新疆维吾尔自治区", "香港":"香港特别行政区", "澳门":"澳门特别行政区"};
dizhiDiv.on('click', '.province .dizhi_t_2_2 p', function(e){
var pro = $(this).text();
if (proFullName[pro]){
pro = proFullName[pro];
}else{
pro += "省";
}
selPro = pro;
var city = "";
$.each(provinceObject[pro], function(v){
city += "<p style='width:auto;padding-right: 6px;'>" + v + "</p>";
});
var cityDiv = dizhiDiv.find(".city .dizhi_t_2 .dizhi_t_2_2");
cityDiv.html("");
$(city).appendTo(cityDiv);
dizhiDiv.find('.dizhi_t_1 p[idx=2]').trigger("click");
initInput.val(selPro + "-");
initInput.attr("title", initInput.val());
});
dizhiDiv.on('click', '.city .dizhi_t_2_2 p', function(e){
var city = $(this).text();
selCity = city;
var area = "";
$.each(provinceObject[selPro][city], function(idx, v){
area += "<p style='width:auto;padding-right: 6px;'>" + v + "</p>";
});
var areaDiv = dizhiDiv.find(".area .dizhi_t_2 .dizhi_t_2_2");
areaDiv.html("");
$(area).appendTo(areaDiv);
dizhiDiv.find('.dizhi_t_1 p[idx=3]').trigger("click");
initInput.val(selPro + "-" + selCity + "-");
initInput.attr("title", initInput.val());
});
dizhiDiv.on('click', '.area .dizhi_t_2_2 p', function(e){
var area = $(this).text();
initInput.val(selPro + "-" + selCity + "-" + area);
initInput.attr("title", initInput.val());
initInput.trigger("click");
});
$(document).on('click',function(e){
var target = e.target || e.srcElement;
if (target.id == inpuId){
e.preventDefault();
return;
}
$('.dizhi_t').each(function(){
if($(target).closest(this).length == 0
&& $(this).parent().find("input[id='" + inpuId + "']").attr("id") == inpuId
&& $(this).is(':visible')){
$(this).hide();
}
});
});
$(".wrapper").off("keypress", ".dizhi_city_detail").on('keypress', ".dizhi_city_detail" , function(e){
var allowedReg = new RegExp('[,]');
var charCode = typeof e.charCode != 'undefined' ? e.charCode : e.keyCode;
var keyChar = String.fromCharCode(charCode);
if(allowedReg.test(keyChar)){
e.preventDefault();
return;
};
}).off("blur", ".dizhi_city_detail").on('blur', ".dizhi_city_detail", function(){
var val = $(this).val();
if (val.indexOf(",") != -1){
$(this).val(val.replace(/,/g, ''));
}
});
};
};
new AdrInputPopDiv().init("",true);
</script>
