我的这张表有2列personID
和Name
。第一列是隐藏的。我还添加了一个隐藏的输入字段。之所以这样做,是因为每当刷新页面时,我都可以在瞬间看到它的值。
我实际上使用了数据表。如果我单击表主体,我想显示personID。我的问题是我无法显示personID。
<div class="row table-responsive">
<table class="table table-bordered table-striped table-condensed" id="table_data">
<thead class="header">
<tr class="well">
<th></th>
<th>Person Name</th>
</tr>
</thead>
<tbody>
<?php if($result != NULL){?>
<?php foreach($result as $row){ ?>
<tr>
<td> <input type="hidden" name="personID" id="personID" value="<?php echo $row->personID;?>" />
</td>
<td ><?php echo $row->lname.", ".$row->fname." ".$row->mname;?></td>
<?php }}?>
</tbody>
</table><!-- END Table-->
</div><!-- END table-responsive-->
javascript代码:
var table = $('#table_data').DataTable({
"bLengthChange": false,
"columnDefs": [
{
"targets": [ 0],
"visible": false,
"searchable": false
}
]
});
$('#table_data tbody').on( 'click', 'tr', function () {
if ( $(this).hasClass('active') ) {
$(this).removeClass('active');
}
else {
$(this).addClass('active');
var d = $('input[type=hidden]', $(this).find("td:first")).val();
alert(d);
}
} );
我已经尝试了以下方法:
我在这里得到不确定的结果:
var d = $(this).parent('td').find('input[type="hidden"]').val();
var d = $('input[type=hidden]', $(this).find("td:first")).val();
警报未在此处显示:
var d=document.getElementById('personID').value;
当我尝试这样做时,它给我这个结果
<input name="personID" id="personID" value="19" type="hidden">
: var d= $(this).parents('tr').find('input[type="hidden"]').val();
请帮我..
最佳答案
确切地了解这里出了什么问题有点困难。有时您指的是代码段中名称为“ personID”的隐藏输入,有时甚至是“ guestID”。如果您的实际代码中存在这种差异,显然会引起问题。
如果您确保呈现的HTML是您所期望的(使用personID作为隐藏输入的名称),则应该可以执行以下操作:
$('#table_data tbody').on('click', 'tr', function () {
var $tr = $(this);
if ($tr.hasClass('active')) {
$tr.removeClass('active');
} else {
$tr.addClass('active');
// Use the input's name to find it within the <tr>
var d = $tr.find('input[name=personID]').val();
alert(d);
}
});
示例:JSFiddle
然后,将整个表列仅用于隐藏的输入似乎有点过头了。您可以简单地将隐藏的输入与该人的姓名放在同一列中,甚至可以将其作为data attribute存储在表行本身上。另外,在您的PHP循环中,您将为所有隐藏的输入提供相同的“ personID” ID,这在技术上并不正确-HTML文档中的所有ID值都应该是唯一的。
关于javascript - 在数据表的隐藏列中获取input [type = hidden]的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28916875/