开发者

trying to get values from a HTML form?

开发者 https://www.devze.com 2023-03-18 01:44 出处:网络
I have a HTML form where i dynamically create elements and set its name , value attributes . when i tried to access the value say document .formname.nameoftheelement.value then i get the error that v

I have a HTML form where i dynamically create elements and set its name , value attributes .

when i tried to access the value say document .formname.nameoftheelement.value then i get the error that value is undefined.

Then i tried to use the following function to access the values .it returns the input elements as 4 but value as null when i it already has predefined value .

function returnTheStor开发者_StackOverflow中文版edValues(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;
} 

The html code is

Phone
         <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>    

Appreciate all your help .


You seem to want the values of the input elements, so:

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;
}


Because you're getting the TD's and not the INPUT's?

var inputs = tableName.getElementsByTagName('td');

Should be

var inputs = tableName.getElementsByTagName('input');

By the way, if you use a Javascript framework, your code will be happier.


You really need to look into using jQuery for accessing elements through JavaScript.

You could then re-write your function to the following:

function returnTheStoredValues(getTableName) {
    return $("#email_table input").map(function() {
        return $(this).val();
    }).get();
}
0

精彩评论

暂无评论...
验证码 换一张
取 消