由于业务需要,需要做一个类似Google提示的功能,输入省份的编号,就要自动匹配到所在省市县!
比如:110000,在名称文本框中就要出现"北京市"
因此,做了如下的方法:还望大家多多指教,看有没有更好的方法
这个方法的局限性很强;比如直辖市:北京,重庆,上海,香港,澳门等一些特殊编码的城市就不行了
js 代码
- <script language=< span="">"JavaScript">
- function checkBiaoHao() {
- var valueJianCheng=new Array();
- <%
- out.print(juxinxi.getXj_Id_Value());
- %>
- var name= new Array();
- <%
- out.print(juxinxi.getXj_Id_Name());
- %>
- var xj_id=document.getElementById("XJ_ID");
- var oldXJ_ID=xj_id.value;
- if(oldXJ_ID == ""||oldXJ_ID == null) {
- alert("编号不能为空,请填写");
- xj_id.focus();
- return;
- }
- var txj_IdNumber=Number(oldXJ_ID);
- if(isNaN(txj_IdNumber)) {
- alert("编号必须为数字,请重新填写");
- xj_id.focus();
- return;
- }
- else if(oldXJ_ID.length == 6)
- {
- var biteStr=oldXJ_ID.substring(0,4);
- for(i=0; i<name.length;i++) <="" span="">
- {
- //如果数组中已经有此编码,就提示
- // if(name[i].equals(oldXJ_ID))
- // {
- // alert("数据库中,已存在该数据");
- // break;
- // }
- //其它省,请联系管理添加顶级省
- var startStr=oldXJ_ID.substring(0,2);
- var nameStr=name[i].substring(0,2);
- if((nameStr!=startStr)&&(oldXJ_ID.indexOf("0000",2)!= -1)&&(name[i].indexOf("0000",2) != -1))
- {
- //var newStr=startStr+'0000';
- //alert(newStr);
- alert("其它省,请联系管理添加顶级省");
- }
- //省级方法
- if((name[i].indexOf(biteStr) != -1)&&(oldXJ_ID.indexOf("0000",2)!= -1)&&(name[i].indexOf("0000",2) != -1))
- {
- document.getElementById("ParentID").value=name[i];
- document.getElementById("ParentIDs").value=valueJianCheng[i];
- break;
- }
- //市级方法
- if((oldXJ_ID.indexOf("00",4) != -1)
- &&(name[i].indexOf("0000",2) == -1)
- &&(name[i].indexOf("00",4)!=-1)
- &&(oldXJ_ID.indexOf("0000",2) == -1))
- {
- for(j=0;j<name.length;j++) { <="" span="">
- if((name[j].indexOf("0000",2) != -1))
- {
- document.getElementById("ParentID").value=name[j];
- document.getElementById("ParentIDs").value=valueJianCheng[j];
- break;
- }
- }
- }
- //县级方法
- var endStr=oldXJ_ID.substring(4,6);
- if((name[i].indexOf(biteStr) != -1)&&(name[i].indexOf(endStr,4) == -1)&&(name[i].indexOf("0000",2) == -1)&&(oldXJ_ID.indexOf("0000",2) == -1))
- {
- document.getElementById("ParentID").value=name[i];
- document.getElementById("ParentIDs").value=valueJianCheng[i];
- break;
- }
- }
- return;
- }
- else
- {
- alert("编号输入错误,请重新正确填写" );
- var parentSt=document.getElementById("XJ_ID");
- parentSt.focus();
- return;
- }
- }
- function addForm() {
- var xj_ids=document.getElementById("XJ_ID").value;
- if(xj_ids == ""||xj_ids == null) {
- alert("编号不能为空,请填写");
- xj_ids.focus();
- return;
- }
- var xj_MingCheng = document.getElementById("XJ_MingCheng");
- if(xj_MingCheng.value==""){
- alert("名称不能为空,请填写");
- xj_MingCheng.focus();
- return;
- }
- var xj_JianCheng = document.getElementById("XJ_JianCheng");
- if(xj_JianCheng.value==""){
- alert("简称不能为空,请填写");
- xj_JianCheng.focus();
- return;
- }
- var parentID = document.getElementById("ParentID");
- if(parentID.value==""){
- alert("上级编号不能为空,请填写");
- parentID.focus();
- return;
- }
- }
- </script>