html里,一个select select1,onChange="Change1()", 一个select select2,onChange="Change2()"
在Change1()里,改变了select2的值,这时不会解发Change2()请问,Change1()除了显式地调用Change2()外,还能不能自动解发Change2()?

解决方案 »

  1.   

    用fireEvent试下.document.getElementById("select2").fireEvent("onchange");
      

  2.   

    <!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></title>    <script type="text/javascript">
            change1 = function() {
                alert("change1");
                change2();
            }
            change2 = function() {
                alert("change2");
            }
        </script></head>
    <body>
        <select id="sel1" name="sel1" onchange="change1()">
            <option value="1-1">1-1</option>
            <option value="1-2">1-2</option>
            <option value="1-3">1-3</option>
        </select>
        <select id="sel2" name="sel2" onchange="change2()">
            <option value="2-1">2-1</option>
            <option value="2-2">2-2</option>
            <option value="2-3">2-3</option>
        </select>
    </body>
    </html>
    这样显示调用就行了,为什么不显示调用呢?不明白意图是什么
      

  3.   

    是这样的,有时候Change1()会改变select2的值,有时候不会改变。
    改变的时候调用Change2(),而不改变的时候就不调用。如果显式地调用Change2(),就起不到这种作用了。
      

  4.   

    改变select2的值之前判断下是否真的改变        function change1() { 
             var v = "2-2";
             var currentValue = document.getElementById("sel2").value;
             if(currentValue != v){
             document.getElementById("sel2").value = v;
                            change2();
             }
            }