var $ = function (id) {
return "string" == typeof id ? document.getElementById(id) : id;
};
function isUndefined(variable) {
return typeof variable == 'undefined' ? true : false;
}
function setcity(provinceid, cityid) {
var province = document.getElementById(provinceid).value;
    switch (province) {
        case "北京" :
            var cityOptions = new Array(
            "东城", "东城",
            "西城", "西城",
            "崇文", "崇文",
            "宣武", "宣武",
            "朝阳", "朝阳",
            "延庆", "延庆");
            break;
        case "上海" :
            var cityOptions = new Array(
            "嘉定", "嘉定",
            "浦东", "浦东",
            "金山", "金山",
            "松江", "松江",
            "青浦", "青浦",
            "南汇", "南汇",
            "奉贤", "奉贤",
            "朱家角", "朱家角");
            break;
        default:
            var cityOptions = new Array("选择城市", "");
            break;
    }

var cityObject = document.getElementById(cityid);
cityObject.options.length = 0;
cityObject.options[0] = new Option("选择城市", "");
var j = 0;
for(var i = 0; i < cityOptions.length/2; i++) {
j = i + 1;
    cityObject.options[j] = new Option(cityOptions[i*2],cityOptions[i*2+1]);
}
}function initprovcity(provinceid, province) {
var provObject = document.getElementById(provinceid);
    for(var i = 0; i < provObject.options.length; i++) {
        if (provObject.options[i].value == province) {
         provObject.selectedIndex = i;
break;
        }
    }
    //setcity(provinceid, cityid);
}function showprovince(provinceid, cityid, province, boxid) {
var provinces = new Array(
"北京", "上海"
);

var selObj = document.createElement("select");
selObj.name = provinceid;
selObj.id = provinceid;
selObj.onchange = function() {
setcity(provinceid, cityid);
};
$(boxid).appendChild(selObj);

selObj.options[0] = new Option("选择省份", "");
var j = 0;
for(var i = 0; i < provinces.length; i++) {
j = i + 1;
selObj.options[j] = new Option(provinces[i], provinces[i]);
}

initprovcity(provinceid, province);}function showcity(cityid, city, provinceid, boxid) {
if(isUndefined(provinceid)) provinceid = '';

var selObj = document.createElement("select");
selObj.name = cityid;
selObj.id = cityid;
$(boxid).appendChild(selObj);
if(city == "") {
selObj.options[0] = new Option("选择城市", "");
} else {
selObj.options[0] = new Option(city, city);
} if(provinceid != '') {
setcity(provinceid, cityid);
initprovcity(cityid, city);
}
}上面是一般的联动,左边选择,右边联动。js代码上,调用下。<p><table><tr>
<th>家乡:</th>
<td id="birthcitybox">
<script type="text/javascript" src="Scripts/script_city.js"></script>
<script type="text/javascript">
<!--
showprovince('birthprovince', 'birthcity', '北京', 'birthcitybox');
showcity('birthcity', '东城', 'birthprovince', 'birthcitybox');
 
//-->
</script>
</td></tr>
</table></p>
我想改成,如果city有值,则左边自动联动,如果没值,则调用默认值。调用的代码只有一句 showcity('birthcity', '东城', 'birthprovince', 'birthcitybox'); //showprovince不要了如果city有值“东城”,则左边的省份自动联动到北京,如果值为“黄埔”,左边自动联动到 上海。没值则显示默认值。应该怎么改?

解决方案 »

  1.   

    道理是一样的。在设计数据库表的时候匹配一下就行。
    例如北京代码是0101  东城区为010105   取前四位跟province表进行匹配,那么出来的肯定就唯一了,为北京。  其他以此类推。
      

  2.   


    不是阿, 我数据库只有东城区这个字段, 没有北京, 我希望的是 由js自行判断如果是东城区, 在js数组里找到北京 就可以了, 可是我js不好,不会改啊~~