为什么我这个javascript代码document.getElementsByName("name_txtSides")输出是object HTMLInputElement

HTML表单代码:

<form onsubmit="fucUrl( 'Triangle', 'name_txtSides' )" style="display:inline;" method="post" name="name_formTriangle" id="id_formTriangle">
<p><label for="id_txtSide1">第一条边</label> <input id="id_txtSide1" name="name_txtSides" type="text" /></p>
<p><label for="id_txtSide2">第二条边</label> <input id="id_txtSide2" name="name_txtSides" type="text" /></p>
<p><label for="id_txtSide3">第三条边</label> <input id="id_txtSide3" name="name_txtSides" type="text" /></p>
<input name="name_submitTriangle" id="id_submitTriangle" type="submit" value="提交" />
<input name="name_resetTriangle" id="id_resetTriangle" type="reset" value="重置" />

javascript代码:

//传递参数函数
function fucUrl( shapeName, shapeArgumentsName )
{
var args = document.getElementsByName( shapeArgumentsName );

var str = "";

for( var i = 0; i < args.length; i++ )
{

str = args[i] + "+";

alert( args[i] );

}

document.getElementById( "id_form" + shapeName ).action = "./surface.php?shape="+shapeName+"&arguments="+str;

}

你好!!


这个比较容易理解:

当进行提交动作时,即onsubmit="fucUrl( 'Triangle', 'name_txtSides' )",


调用了函数fucUrl(),并其此函数传递了两个参数('Triangle', 'name_txtSides'),

其中

var args = document.getElementsByName( shapeArgumentsName );

var args = document.getElementsByName( "name_txtSides" );

这句的意思是 获取name属性=='name_txtSides'的元素的集合 。


在你的html代码中,name属性=='name_txtSides'的元素有3个,都为文本框,

当然他们都是HTMLInputElement类型的元素。


//下面通过value属性可以获取该元素的值

//这个循环是要计算三边相加的结果么? 

//如果是的话,即最终参数为 &arguments=XXX 的样子的话,使用下面的方式:

var str = 0;
for( var i = 0; i < args.length; i++ ){
    str += +args[i].value;
}

 //如果不是的话,即最终参数为 &arguments=XX+XX+XX 的样子的话,使用下面的方式:

var str = '';
for( var i = 0; i < args.length; i++ ){
    str += args[i].value;
    if(i != (args.length-1)){
        str += "+";
    }
}


希望对你有帮助!!!

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-22
document.getElementsByName("name_txtSides")
这个获得的是HTML元素对象,如果想要回去值的话,应该是
document.getElementsByName("name_txtSides")[0].value
document.getElementsByName("name_txtSides")[1].value
document.getElementsByName("name_txtSides")[2].value
相似回答