- wdmcln
- 等级:
- 文章: 20
- 积分: 110
|
由于业务需要,需要做一个类似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="">
- {
-
-
-
-
-
-
-
- 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))
- {
-
-
- 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>
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
返回顶楼 |
|
|
- campaign
- 等级:
- 文章: 223
- 积分: 542
|
没太理解你的需求,意思是要我输入一个号码,他会到后台把相关的名称都读出来,比如我输入1,他会到后台把以1开头的所有记录都读出来,在表里是编码对应地名吗
|
返回顶楼 |
|
|
- wdmcln
- 等级:
- 文章: 20
- 积分: 110
|
自动匹配到所在省市县
拿山东省来举例:
370000---山东省
370800---市
370825---县
当用户输入370801这个编号的时候
省市县文本框中就要出现这个编号的名称
省的话,就是它自己;
市的话,它的上一级就是省,所以在省市县文本框中都应显示省
上面的代码,功能已经实现,但是局限性太强了,所以想请大家来帮
帮忙[color=blue][/color]
|
返回顶楼 |
|
|