Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 试图从HTML表单获取值?_Javascript_Html - Fatal编程技术网

Javascript 试图从HTML表单获取值?

Javascript 试图从HTML表单获取值?,javascript,html,Javascript,Html,我有一个HTML表单,动态创建元素并设置其名称、值和属性 当我试图访问document.formname.nameofeelement.value这个值时,我得到一个错误,即该值未定义 然后我尝试使用下面的函数来访问这些值。它将输入元素返回为4,但当它已经具有预定义值时,返回值为null function returnTheStoredValues(getTableName) { //Array arrList = new Array(20); var tableName = d

我有一个HTML表单,动态创建元素并设置其名称、值和属性

当我试图访问document.formname.nameofeelement.value这个值时,我得到一个错误,即该值未定义

然后我尝试使用下面的函数来访问这些值。它将输入元素返回为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;
} 
函数返回存储的值(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;
}