繁体   English   中英

从表行的隐藏输入字段中获取值

[英]Get a value from a hidden input field in a table row

我有一个表,该表是使用数据库中的数据自动生成并使用jquery创建的。 这是使用以下tr变量创建的,该变量附加到主体tbody上:以下是我的代码:

var list = " <tr id='order_no_tr'><td id='order_no_td" + item.documentno + "'>" + item.documentno + "</td><td>" + item.progressstatus + "</td><td>" + newDate + "</td>\n\
                                <td><button type='button' id='cnfrmd_rcvd" + item.c_order_id + "' class='btn btn-default btn-sm cnfrmd_rcvd" + item.c_order_id + "' >Confirm Received</button>\n\
        <input type='hidden' name='order_no_txt' id='order_no_txt" + item.c_order_id + "' value='" + item.c_order_id + "' class='order_no_txt" + item.c_order_id + " btn btn-primary'/>\n\
        </td></tr>";
$("#order_no_tbody").append(list);
$("#order_no_tr").on("click", ".cnfrmd_rcvd" + item.c_order_id, function() {
    var order_no = this.value;
    alert(order_no);
});

现在,我想获取名为order_no_txt的html输入名称的值,我尝试通过以下函数进行访问,但失败:

$("#order_no_tr").on("click", ".cnfrmd_rcvd" + item.c_order_id, function() {
    var order_no = this.value;
    alert(order_no);
});

请告知我该如何实现?

由于隐藏元素是button的同级元素,因此可以使用该关系使用.next()遍历到元素,并使用.val()方法获取其值。

$("#order_no_tr").on("click", ".cnfrmd_rcvd" + item.c_order_id, function() {
    var a = $(this).next(':hidden').val();
            //Following can also be used
            //$(this).closest('td').find(':hidden').val()
    alert(a);
});

参考文献

您应该学习事件委托 ,以动态创建元素。


根据评论,单击仅适用于第一条记录,而单击不适用于其他记录。 标识符必须是唯一的。 似乎您多次重复使用order_no_tr作为ID,所以这是预期的行为。

更改

$("#order_no_tr").on("click", ".cnfrmd_rcvd" + item.c_order_id, function() {
});

$(".cnfrmd_rcvd" + item.c_order_id).on("click", function() {
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM