我有一个HTML表单,我动态创建元素并设置其名称,值属性。
当我试图访问值说文件.formname.nameoftheelement.value然后我得到错误的值是未定义的。
然后我尝试使用以下函数来访问值.it将输入元素返回为4,但当它已经具有预定义值时,将值返回为null。
function returnTheStoredValues(getTableName) {
//Array arrList = new Array(20);
var tableName = document.getElementById (getTableName);
console.log("The table name" + tableName);
if (tableName) {
var inputs = tableName.getElementsByTagName ('td');
console.log("the inputs are " + inputs.length);
if (inputs) {
console.log("inputs not equal to null")
for (var i = 0; i < inputs.length; ++i) {
console.log("the value in phones table are " + inputs[i].value);
//arrList[i] = inputs[i].value;
}
}
}
//return arrList;
}
html代码是
电话 <table id="email_table">
<tr>
<td><h3>Email</h3></td>
<td><input value="+" type="submit" onClick="checkTheEmailButtonClicked()"></td>
</tr>
</table>
<table>
<tbody>
<tr>
<td><input type="submit" value ="Save" onclick="getData();"/></td>
<td><input type="submit" value = "Cancel"/></td>
</tr>
</tbody>
</table>
感谢您的所有帮助。
答案 0 :(得分:1)
因为你得到的是TD而不是INPUT?
var inputs = tableName.getElementsByTagName('td');
应该是
var inputs = tableName.getElementsByTagName('input');
顺便说一下,如果你使用Javascript框架,你的代码会更快乐。
答案 1 :(得分:1)
您似乎想要输入元素的值,因此:
function returnTheStoredValues(getTableName) {
var arrList = [];
var table = document.getElementById(getTableName);
var inputs = table.getElementsByTagName('input');
for (var i=0, iLen=inputs.length; i<iLen; i++) {
arrList[i] = inputs[i].value;
}
return arrList;
}
答案 2 :(得分:0)
你真的需要考虑使用jQuery通过JavaScript访问元素。
然后您可以将您的功能重写为以下内容:
function returnTheStoredValues(getTableName) {
return $("#email_table input").map(function() {
return $(this).val();
}).get();
}