Javascript 试图从HTML表单获取值?
我有一个HTML表单,动态创建元素并设置其名称、值和属性 当我试图访问document.formname.nameofeelement.value这个值时,我得到一个错误,即该值未定义 然后我尝试使用下面的函数来访问这些值。它将输入元素返回为4,但当它已经具有预定义值时,返回值为nullJavascript 试图从HTML表单获取值?,javascript,html,Javascript,Html,我有一个HTML表单,动态创建元素并设置其名称、值和属性 当我试图访问document.formname.nameofeelement.value这个值时,我得到一个错误,即该值未定义 然后我尝试使用下面的函数来访问这些值。它将输入元素返回为4,但当它已经具有预定义值时,返回值为null function returnTheStoredValues(getTableName) { //Array arrList = new Array(20); var tableName = d
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;
}
函数返回存储的值(getTableName){
//数组arrList=新数组(20);
var tableName=document.getElementById(getTableName);
log(“表名”+表名);
if(表名){
var inputs=tableName.getElementsByTagName('td');
console.log(“输入为”+inputs.length);
如果(输入){
console.log(“输入不等于null”)
对于(变量i=0;i
html代码是
电话
电子邮件
感谢您的帮助。因为您得到的是TD而不是输入
var inputs = tableName.getElementsByTagName('td');
应该是
var inputs = tableName.getElementsByTagName('input');
顺便说一句,如果您使用Javascript框架,您的代码会更愉快。您确实需要研究使用jQuery通过Javascript访问元素 然后,您可以将函数重新写入以下内容:
function returnTheStoredValues(getTableName) {
return $("#email_table input").map(function() {
return $(this).val();
}).get();
}
您似乎想要输入元素的值,因此:
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;
}
函数返回存储的值(getTableName){
var arrList=[];
var table=document.getElementById(getTableName);
var inputs=table.getElementsByTagName('input');
对于(var i=0,iLen=inputs.length;i框架如何修复错误,如使用错误的标记名?@RobG-不会。jQuery不是那么神奇=)但从长远来看,你不认为值得学习吗?@anon-这要看情况。如果我是一个新手,需要尽快完成一些工作,但不知道自己在做什么,那么使用框架可能是有意义的。但是如果高效的跨浏览器代码在一个非常重要的程序中很重要,那么框架通常是不合适的。使用一个意思是你可能也学不到如何去做。@anon-PS。从我的回答中可以看出,做这项工作的代码只不过是提供的jQuery解决方案,设置变量需要几行代码。我知道哪一行会运行得更快,而且在IE 5之后的几乎所有浏览器中都会运行得更快(添加对它的支持将非常容易,但我怀疑在web上使用它的人不会太多)。
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;
}