代码如下:
checkbyvalue("f", "hello");
function checkbyvalue(c, v) {
alert(c.options[0]+"---------------"+v);
if (!undefined(c.options)) {
alert("hello"); for ( var i = 0; i < c.options.length; i++) {
if (c.options[i].value == v) {
c.options[i].selected = true;
break;
}
}
}
}
hello只是我测试的一个值,以后会改成变量的,我的思路是得到所有option节点的value值,如果和后面的变量值相等,那么列表框则选择该条信息作为默认信息。代码中f是表单name,但是我发现c.options[0]这句代码是错误的,用它选不到option元素,我想问怎么得到表单中的option元素?

解决方案 »

  1.   

    用:document.getElementById("select元素的id值")获得你的select元素对象!c = document.getElementById("select元素的id值");
    ----------------c.options[0]没有错误、只是你的c错了而已!
      

  2.   


    <select id="testSelectId">   
        <option  value="1">text1</option>   
        <option  value="2">text2</option>   
    </select>
    <input type="button" value="Test" onclick="checkbyvalue('testSelectId','2');" />
    <script type="text/javascript">
    <!--
    function checkbyvalue(c,v) {
    c = document.getElementById(c);    
    alert(c.options[0].value+c.options[0].text);
            if (undefined!=c) {  
                alert("hello");
                for ( var i = 0; i < c.options.length; i++) {
                    if (c.options[i].value == v) {
                        c.options[i].selected = true;
                        break;
                    }
                }
            }
        }
    //-->
    </script>
      

  3.   

    我是想一载入就有效果的,用onclick不行
      

  4.   


    这个只是测试代码!!!
    难道你不会改成你自己需要的代码?
    记住把JS放在select元素后面、只要是后面就行!<script type="text/javascript">
    <!--
        checkbyvalue("select元素的id","hello");
        function checkbyvalue(c,v) {
            c = document.getElementById(c);    
            alert(c.options[0].value+c.options[0].text);
            if (undefined!=c) {  
                alert("hello");
                for ( var i = 0; i < c.options.length; i++) {
                    if (c.options[i].value == v) {
                        c.options[i].selected = true;
                        break;
                    }
                }
            }
        }
    //-->
    </script>
      

  5.   

    你在进入方法的时候alert("--")一下!
    然后在alert(document.getElementById(c));
    如果说这个弹出undefined或者不弹出则说明要么就是你的id没有写对、找不到这个元素!
    要么就是JS执行的时候元素还没有被加载、这个时候就把JS放在元素加载之后就行了!
      

  6.   

    alert(document.getElementById(c));弹出的对话框是null,不过我不理解把js放在元素加载之后是什么意思
      

  7.   

    ok,I know了,把script放在body里面就可以了。