我在试做JSP的网络书店,想实现一个功能。就是:有一个下拉框(或者选择框),里面有“书名”,“作者”两项。当我点选“书名”的时候,下面的另一个下拉框里面就显示我从数据库里读出所有书名。现在的问题是,我不知道怎么样才能让我点选“书名”的时候,响应事件。怎么才能让我点选下拉框里其中一项的时候,它能象Submit按钮一样呢?

解决方案 »

  1.   

    <script>
    function submit(){
      document.all("f").submit();
    }
    </script><form name="f" action="">
      <select onChange="submit();">
      ...
    </form>
      

  2.   

    onChange行不通,它只是跳到另一张页面。我回去试试lip009仁兄的方法吧。不过,还是谢谢两位。
      

  3.   

    <select name=year></select>
    <select name=month></select>
    <select name=date></select>
    <select name=clock></select>
    <input name=result><script>
    var arrSel=["year","month","date","clock"];//arrSel定义了要修改的下拉框和xml数据的节点名称
    </script><xml id=xmldata>
     <xmldata>
      <year value="2000">
       <month value="4">
        <date value="14">
         <clock value="一点" />
         <clock value="三点" />
        </date>
        <date value="17">
         <clock value="一点" />
        </date>
       </month>
       <month value="5">
        <date value="15">
         <clock value="一点" />
         <clock value="四点" />
         <clock value="七点" />
        </date>
       </month>
      </year>
      <year value="2001">
       <month value="7">
        <date value="16">
         <clock value="一点" />
         <clock value="五点" />
         <clock value="九点" />
        </date>
       </month>
      </year>
     </xmldata>
    </xml><script>
    function qswhXml(num){
    /******* by qiushuiwuhen(2002-5-17) ********/
     var i,j,arrTemp=[];
     for(i=0;i<num;i++)arrTemp[i]=document.all(arrSel[i]).options[document.all(arrSel[i]).selectedIndex].text
     if(num==arrSel.length){//这里处理最后的数据。
      document.all("result").value="选中了("+arrTemp+")";return;
     }
     with(document.all(arrSel[num])){
      length=0
      var obj=document.all.xmldata.XMLDocument.childNodes[0];
      for(i=0;i<num;i++)obj=obj.selectSingleNode(arrSel[i]+'[@value="'+arrTemp[i]+'"]');
      for(i=0;i<obj.childNodes.length;i++)options[length++].text=obj.childNodes[i].getAttribute("value");
      onchange=new Function("qswhXml("+(num+1)+")");
      onchange();
     }
    }
    qswhXml(0);
    </script>