首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

关于document.表单名 写法纳闷

2013-02-04 
关于document.表单名 写法疑惑case1:form namefminput typetextnamecont1/input typebutt

关于document.表单名 写法疑惑
   
case1:


<form name="fm">
            <input type="text"  name="cont1"/>
            <input type="button" value="test" onclick="sub();"/>
         </form>
         <script type="text/javascript">
        function sub() {
            var cont1 = 'cont1'; //这样写时,可以正确得到文本框里的值
            alert(cont1);
            alert( "name: " + document.fm.cont1.value);        
        }
        </script>


case2:

<form name="fm">
            <input type="text"  name="cont1"/>
            <input type="button" value="test" onclick="sub();"/>
         </form>
         <script type="text/javascript">
        function sub() {
            var cont = 'cont1';
            alert(cont);
            alert( "name: " + document.fm.cont.value); //这样写便会出错,TypeError:
                                                       //document.fm.cont is undefined     
        }
        </script>


   
case3:

<form name="fm">
            <input type="text" id="cont1"  name="cont1"/>
            <input type="button" value="test" onclick="sub();"/>
         </form>
         <script type="text/javascript">
        function sub() {
            var cont = 'cont1';
            alert(cont);
            alert( "id: " + document.getElementById(cont).value);        
            alert( "name: " + document.fm.cont.value);        
        }


        </script>




    为什么,case3写法可以通过id获取,而case2却不能呢,是不是document.表单名写法时,后面的那个input的name名是从DOM树中查找,而不能通过变量来获取???

   


[解决办法]
通过name的值来获取,case2/case3楼主看清楚来你的name值就不对,是cont1,不是cont

去属性时通过.操作符和[]操作符是不一样的

[]操作符号可以为变量,.不行
            function sub() {
                 var cont = 'cont1';
                 alert(cont);
                 alert("id: " + document.getElementById(cont).value);
                 alert("name: " + document.fm[cont].value);//////
             }

[解决办法]
根据表单名取表单用document.forms吧,
document.forms["fm"].cont.value
 

热点排行