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树中查找,而不能通过变量来获取???
function sub() {
var cont = 'cont1';
alert(cont);
alert("id: " + document.getElementById(cont).value);
alert("name: " + document.fm[cont].value);//////
}
document.forms["fm"].cont.value
<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>