<form name=form1>
<select name=province onchange="cityName(this.value)">
  <option value="">请选择省名</option>
</select><select name=city>
  <option value="">请选择城名</option>
</select>
</form><script language=javascript>var provinceName = ["浙江", "江苏", "安徽", "江西"];
var 浙江 = ["杭州", "宁波", "温州", "绍兴", "金华", "湖州"];
var 江苏 = ["南京", "苏州", "无锡", "常州", "镇江", "徐州"];
var 安徽 = ["合肥", "翕县", "黄山", "祁门", "休宁"];
var 江西 = ["南昌", "九江", "赣州", "上饶", "新余", "景德镇"]; 
var cityouterHTML = document.form1.city.outerHTML.substr(0, document.form1.city.outerHTML.length-9);
function province()
{   var e = document.form1.province;
   var s = e.outerHTML.substr(0, e.outerHTML.length-9) + "\r\n";
       for (var i=0; i<provinceName.length; i++){
       s += "<option value='"+ provinceName[i] +"'>"+ provinceName[i] +"</option>\r\n";}
       s += "</select>";
       e.outerHTML = s;
}  province();
function cityName(val)
{   var e = document.form1.city;
   var s = cityouterHTML;
   if (val == "") {s += "</select>"; e.outerHTML = s; return;}
   var a = eval(val);
       for (var i=0; i<a.length; i++)
       {
           s += "<option value='"+ a[i] +"'>"+ a[i] +"</option>\r\n";
       }
       s += "</select>";
       e.outerHTML = s;
}
</script>

解决方案 »

  1.   

    参考一下
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <meta http-equiv="Content-Language" content="zh-cn">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function test()
    {
        test2.selectedIndex=test1.selectedIndex; //selectedIndex为被选中的int的值
    }
    //-->
    </SCRIPT>
    </HEAD>
    <BODY>
    <select name="test1" onchange="test()">
      <option value="aa">aa</option>
      <option value="bb">bb</option>
      <option value="cc">cc</option>
      <option value="dd">dd</option>
    </select>
    <select name="test2">
      <option value="aa">aa</option>
      <option value="bb">bb</option>
      <option value="cc">cc</option>
      <option value="dd">dd</option>
    </select>
    </BODY>
    </HTML>
      

  2.   

    在windows教本技术中的资料
    特殊的内部函数
    Jscript 语言包含很多内部函数。某些函数可以操作表达式和特殊字符,而其他函数将字符串转换为数值。一个有用的内部函数是 eval()。该函数可以对以字符串形式表示的任意有效的 Jscript代码求值。eval() 函数有一个参数,该参数就是想要求值的代码。下面给出一个使用本函数的示例。var anExpression = "6 * 9 % 7";
    var total = eval(anExpression); // 将变量 total 赋值为 5。
    var yetAnotherExpression = "6 * (9 % 7)";
    total = eval(yetAnotherExpression) // 将变量 total 赋值为 12。
    // 将一个字符串赋给 totality (注意嵌套引用)
    var totality = eval("'...surrounded by acres of clams.'");
    有关内部函数的详细信息请参考语言参考计算一个表达式的值并返回结果。
    [result = ]Eval(expression)
    参数
    result 
    可选项。是一个变量,用于接受返回的结果。如果未指定结果,应考虑使用 Execute 语句代替。 
    expression 
    必选项。可以是包含任何有效 VBScript 表达式的字符串。 
    说明
    在 VBScript 中,x = y 可以有两种解释。第一种方式是赋值语句,将 y 的值赋予 x。第二种解释是测试 x 和 y 是否相等。如果相等,result 为 True;否则 result 为 False。Eval 方法总是采用第二种解释,而 Execute 语句总是采用第一种。注意   在Microsoft&reg; JScript&#8482; 中不存在这种比较与赋值的混淆,因为赋值运算符 (=) 与比较运算符 (==) 不同。
    下面的例子说明了 Eval 函数的用法: Sub GuessANumber
       Dim Guess, RndNum
       RndNum = Int((100) * Rnd(1) + 1)
       Guess = CInt(InputBox("Enter your guess:",,0))
       Do
          If Eval("Guess = RndNum") Then
             MsgBox "祝贺你!猜对了!"
             Exit Sub
          Else
             Guess = CInt(InputBox("对不起,请再试一次",,0))
          End If
       Loop Until Guess = 0
    End Sub
      

  3.   

    meizz老师:
    能把javascript部分作个详细阐述吗?谢谢
      

  4.   

    我来试着解释一下把。梅花雨比较忙的。
    <form name=form1>
    <select name=province onchange="cityName(this.value)">
      <option value="">请选择省名</option>
    </select><select name=city>
      <option value="">请选择城名</option>
    </select>
    </form><script language=javascript>var provinceName = ["浙江", "江苏", "安徽", "江西"]; //建立省份数组
    //以下为建立各省份城市数组
    var 浙江 = ["杭州", "宁波", "温州", "绍兴", "金华", "湖州"];  
    var 江苏 = ["南京", "苏州", "无锡", "常州", "镇江", "徐州"];
    var 安徽 = ["合肥", "翕县", "黄山", "祁门", "休宁"];
    var 江西 = ["南昌", "九江", "赣州", "上饶", "新余", "景德镇"]; 
    var cityouterHTML = document.form1.city.outerHTML.substr(0, document.form1.city.outerHTML.length-9);//这句中document.form1.city.outerHTML的值
    //就是<select name=city><option value="">请选择城名</option></select>
    //substr去掉了</select>字符串,因为要往后面加相应的内容
    function province()  //初始化province
    {   var e = document.form1.province;  //把province对象赋给e变量
       var s = e.outerHTML.substr(0, e.outerHTML.length-9) + "\r\n";
       //这个循环是写入province的省份值
           for (var i=0; i<provinceName.length; i++){
           s += "<option value='"+ provinceName[i] +"'>"+ provinceName[i] +"</option>\r\n";}
           s += "</select>";  //select的结束
           e.outerHTML = s;   //改写province
    }  province(); //执行province函数
    function cityName(val)  //使city联动的函数
    {
       //以下两句基本上同上一个函数意义差不多
       var e = document.form1.city;
       var s = cityouterHTML;
      //如果用户选了“请选择省份”时候的动作,加上</select>然后输出,退出函数
       if (val == "") {s += "</select>"; e.outerHTML = s; return;}
       //eval的应用,我觉得这句话应该占着比较重要的为止
       //关于eval的用法我在上面的一个已经贴出资料了。
       var a = eval(val);
       //这个循环是读入对应的省份的城市的数组
           for (var i=0; i<a.length; i++)
           {
               s += "<option value='"+ a[i] +"'>"+ a[i] +"</option>\r\n";
           }
           s += "</select>";
           e.outerHTML = s;
    }
    </script> 不好意思,解释的不好。
      

  5.   

    小的愚笨,还是没有懂val的含义!!!
      

  6.   

    说实话,我现在对eval还不是很理解。
     说明上说eval是用与写动态javascript语句的。
     能不能这样理解??
     比如有字符串"test",在当前的脚本中有一个对象比如数组名为test,
     如果加了eval("test") 就把字符串test变成为javascript语句,即为
     test对象了。 到现在我也只能这样理解。