试图从HTML表单中获取值?

时间:2011-07-06 00:54:37

标签: javascript html

我有一个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>    

感谢您的所有帮助。

3 个答案:

答案 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();
}