看起来似乎与 form 没啥关系呀?!不就是一个 select 的 onchange 事件么?对了,lz 还把俺加为好友,有没有红包呀,哈L@_@K<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title> select.onchange </title>
  <meta name="generator" content="editplus" />
  <meta name="author" content="[email protected]" />
  <meta name="keywords" content="javascript" />
  <meta name="description" content="for javascript region of csdn" />
 </head> <body>
<table>
    <form action="" method="post">
        <tr>
         <td>
           <select size="1" name="mySelect" onchange="xxx(this);">
            <option value="1" selected>1
            <option value="2">2
            <option value="3">3
           </select>
         </td>
         <td><div id="mydiv" style="display: none;">***</div></td>
        </tr>
    </form>
    <form action="" method="post">
        <tr>
         <td>
           <select size="1" name="mySelect" onchange="xxx(this);">
            <option value="1" selected>1
            <option value="2">2
            <option value="3">3
           </select>
         </td>
         <td><div id="mydiv" style="display: none;">***</div></td>
        </tr>
    </form>
    <form action="" method="post">
        <tr>
         <td>
           <select size="1" name="mySelect" onchange="xxx(this);">
            <option value="1" selected>1
            <option value="2">2
            <option value="3">3
           </select>
         </td>
         <td><div id="mydiv" style="display: none;">***</div></td>
        </tr>
    </form>
</table>
<script type="text/javascript">
<!--
var colSelect = document.getElementsByTagName("select");
for (var i=0; i<colSelect.length; i++)
{
    colSelect[i].defaultIndex = colSelect[i].selectedIndex;
}function xxx(currentSel)
{
    var nextSiblingTd = currentSel.parentNode.nextSibling;
    var oDiv = nextSiblingTd.firstChild;
    if (currentSel.defaultIndex==currentSel.selectedIndex)
    {
        oDiv.style.display = "none";
    }
    else
    {
        oDiv.style.display = "block";
    }
}
//-->
</script>
 </body>
</html>

解决方案 »

  1.   

    我也曾有过同样的疑问,几乎问题也一样真是很巧.
    form.mydiv这种写法只能获取<input type="..." 或 <select> <textarea>之类的表单控件的值,对于象div,table,span,link这样的用于显示的对象要用document.getElementById,或document.getElementByName,document.getElementsByTagName来获取.这就是你失败的原因.建议你看看dom操作的狸子
    <script language="javascript">
    function showchange(oTr){
    alert(oTr.tagName);
    oTr.cells[1].innerHTML="您已经修改了"
    }
    </script>
    <table id="mytable">
     <form action="" method="post">
       <tr>
         <td>
           <select size="1" name="mySelect" onchange="showchange(this.parentNode.parentNode)">
            <option value="1" selected>1</option>
            <option value="2">2</option>
            <option value="3">3</option>
           </select>
         </td>
         <td>
             当select的值有了改变的时候这样就显示相应的文字提示select的值改变了,比如显示“***”。
         </td>
       </tr>
     </form>
     <form action="" method="post">
       <tr>
         <td>
           <select size="1" name="mySelect" onchange="showchange(this.parentNode.parentNode)">
            <option value="1" selected>1</option>
            <option value="2">2</option>
            <option value="3">3</option>
           </select>
         </td>
         <td>
             当select的值有了改变的时候这样就显示相应的文字提示select的值改变了,比如显示“***”。
         </td>
       </tr>
     </form>
     <form action="" method="post">
       <tr>
         <td>
           <select size="1" name="mySelect" onchange="showchange(this.parentNode.parentNode)">
            <option value="1" selected>1</option>
            <option value="2">2</option>
            <option value="3">3</option>
           </select>
         </td>
         <td>
             当select的值有了改变的时候这样就显示相应的文字提示select的值改变了,比如显示“***”。
         </td>
       </tr>
     </form>
     <form action="" method="post">
       <tr>
         <td>
           <select size="1" name="mySelect" onchange="showchange(this.parentNode.parentNode)">
            <option value="1" selected>1</option>
            <option value="2">2</option>
            <option value="3">3</option>
           </select>
         </td>
         <td>
             当select的值有了改变的时候这样就显示相应的文字提示select的值改变了,比如显示“***”。
         </td>
       </tr>
     </form>
    </table>
      

  2.   

    form 滴用法也可以滴,只是 lz 写错了L@_@K<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
      <title> select.onchange </title>
      <meta name="generator" content="editplus" />
      <meta name="author" content="[email protected]" />
      <meta name="keywords" content="javascript" />
      <meta name="description" content="for javascript region of csdn" />
     </head> <body>
    <table>
        <form action="" method="post">
            <tr>
             <td>
               <select size="1" name="mySelect" onchange="xxx(this);">
                <option value="1" selected>1
                <option value="2">2
                <option value="3">3
               </select>
             </td>
             <td><div id="mydiv" style="display: none;">1 ***</div></td>
            </tr>
        </form>
        <form action="" method="post">
            <tr>
             <td>
               <select size="1" name="mySelect" onchange="xxx(this);">
                <option value="1">1
                <option value="2" selected>2
                <option value="3">3
               </select>
             </td>
             <td><div id="mydiv" style="display: none;">2 ***</div></td>
            </tr>
        </form>
        <form action="" method="post">
            <tr>
             <td>
               <select size="1" name="mySelect" onchange="xxx(this);">
                <option value="1">1
                <option value="2">2
                <option value="3" selected>3
               </select>
             </td>
             <td><div id="mydiv" style="display: none;">3 ***</div></td>
            </tr>
        </form>
    </table>
    <script type="text/javascript">
    <!--
    var colSelect = document.getElementsByTagName("select");
    for (var i=0; i<colSelect.length; i++)
    {
        colSelect[i].defaultIndex = colSelect[i].selectedIndex;
    }function xxx(currentSel)
    {
        var oDiv = currentSel.form.all.mydiv;
        if (currentSel.defaultIndex==currentSel.selectedIndex)
        {
            oDiv.style.display = "none";
        }
        else
        {
            oDiv.style.display = "block";
        }
    }
    //-->
    </script>
     </body>
    </html>
      

  3.   

    问题解决了 感谢 yixianggao(你我他,三人行必有我师焉!) ,xingqiliudehuanghun()  两位帅哥的热心回帖 呵呵 谢谢谢谢 !
    对了 什么是红包啊 就是给分吗 不知道啊 呵呵