检索位于表格单元格中的表单字段隐藏值

时间:2011-06-02 22:03:38

标签: javascript html-table

我有一个包含隐藏输入类型的单元格的表。你如何访问这个隐藏输入类型的值?

HTML表:

<table id = "tableId">
  <tr>
    <td>FirstName LastName</td>
    <td><input type="hidden" value="userId" /><td>
  </tr>

的Javascript

    var table= document.getElementById("tableId");
    var tblTR = table.getElementsByTagName("tr");
    for (var i = 0; i<tblTR.length; i ++) {
        var tr = tblTR[i];
        var tds = tr.getElementsByTagName("td");
        console.debug(tds[0]); //gets the whole cell
        console.debug(tds[1].innerHTML); //gets content of cell, but not the actual value of the hidden input
}

使用第二个console.debug语句,我正在寻找的值是“userId”而不是

<input type="hidden" value="userId" />

根据我的理解,td element cannot have a value attribute,因此我不能只是做一个 tds [i] .value;

或者,是否有其他方法可用于存储此隐藏值?

3 个答案:

答案 0 :(得分:2)

您需要走到输入标签本身

hiddenInputs = tds[1].getElementsByTagName("input");
console.debug(hiddenInputs[0].value);

或具有唯一的名称或唯一ID,然后您可以直接访问它。

<td><input type="hidden" id="inp1" value="userId" /><td>

document.getElementById("inp1").value

<td><input type="hidden" name="inp1" value="userId" /><td>

document.forms[0].inp1.value

答案 1 :(得分:1)

以下作品:

var inputs = document.getElementsByTagName('input');
for (i=0; i<inputs.length; i++){
    if (inputs[i].type == 'hidden'){
        alert(inputs[i].value);
    }
}

JS Fiddle demo

我建议将inputs[i].value分配给变量或数组,而不仅仅是alert()

var inputs = document.getElementsByTagName('input');
var values;

for (i=0; i<inputs.length; i++){
    if (inputs[i].type == 'hidden'){
        values = inputs[i].value;
    }
}

答案 2 :(得分:0)

为您的输入标记命名

示例:

<input type="hidden" value="userId" name='userId'/>

然后你可以访问它:

<form ...name='theform'>
...

<input type="hidden" value="userId" name='userId'/>
...

</form>

Javascript

var value = document.theform.userId.value;

这应该做,你可以忽略表格单元格