关于document.表单名 写法疑惑

molaifeng
博客专家认证
2013-01-30 10:43:13

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树中查找,而不能通过变量来获取???



...全文
235 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
molaifeng 2013-01-30
  • 打赏
  • 举报
回复
哦,明白了,谢谢楼上两位朋友的回答

<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);        
            alert( "name: " + document.forms['fm'][cont].value);        
        }
        </script>
fzfei2 2013-01-30
  • 打赏
  • 举报
回复
根据表单名取表单用document.forms吧, document.forms["fm"].cont.value
Go 旅城通票 2013-01-30
  • 打赏
  • 举报
回复
通过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);//////
             }

87,914

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧