试图获得最接近的表单 ID?
trying to get a form id with closest?
对于一个小购物车,我在一个页面上有多个表单。每个表单代表一个产品的数量,带有一堆动作触发器。在表格之外,我还有一些需要使用的数据。
无论如何,我需要获取与动作触发器对应的表单 ID。
所以我创建了一个函数,在单击操作按钮时调用该函数。
function transferData() {
// var form_id= $(this).closest("form").prop("id");
// var form_id= $(this).prev("form").prop("id");
var form_id= $(this).closest('td').parent().closest('form').prop('id');
操作由
触发
<button name="submit[1]" type="button" onClick="transferData()" class="btn btn-info btn-sm"><i class="fa fa-refresh"></i></button>
html 结构简化
<tr><form id="form_update[1]" name="form_update[1]" action="cart_update.php" method="post"><td data-th="Product"><div class="row">
<div class="col-sm-2 hidden-xs"><img width="100" src="../images/frere.jpg" alt="Frere" class="img-responsive"/></div>
<div class="col-sm-10">
<h4 class="nomargin">Frere</h4>
<p>bad boy frere</p>
</div>
</div></td><td data-th="Price">.00</td><td data-th=""> </td><td data-th="Quantity">
<input type="number" min="0" name="item_qty_summary[1]" class="form-control text-center" value="4">
</td><td data-th="Subtotal" class="text-right" >0</td><td class="actions text-right">
<button name="submit[1]" type="submit" onClick="transferData(this)" class="btn btn-info btn-sm"><i class="fa fa-refresh"></i></button>
<a href="cart_update.php?removep=2015002&return_url=aHR0dC90aXF1ZXNob3AvaW5jbHVkZXMvdmlld19jYXJ0XzIwMTUucGhw" class="btn btn-danger btn-sm"><i class="fa fa-trash-o"></i></a>
</td></form></tr>
但是我收到了一条未定义的错误消息,而不是 id
我忽略了什么??
在您的函数中传递一个参数,如下所示:
function transferData(elem) {
并使用 $(elem)
而不是 $(this)
并像这样在 html 中使用:
onClick="transferData(this)"
根据您对 html 的更新,您可以这样使用:
var form_id= $(elem).closest('form').attr('id');
首先,将您的事件处理程序附加到 javascript ...
$("button[type='submit']").on('click', transferData);
... 然后,在事件处理程序中,this
是被单击的元素(提交按钮):
function transferData() {
var form_id= this.form.id;
...
}
对于一个小购物车,我在一个页面上有多个表单。每个表单代表一个产品的数量,带有一堆动作触发器。在表格之外,我还有一些需要使用的数据。
无论如何,我需要获取与动作触发器对应的表单 ID。
所以我创建了一个函数,在单击操作按钮时调用该函数。
function transferData() {
// var form_id= $(this).closest("form").prop("id");
// var form_id= $(this).prev("form").prop("id");
var form_id= $(this).closest('td').parent().closest('form').prop('id');
操作由
触发<button name="submit[1]" type="button" onClick="transferData()" class="btn btn-info btn-sm"><i class="fa fa-refresh"></i></button>
html 结构简化
<tr><form id="form_update[1]" name="form_update[1]" action="cart_update.php" method="post"><td data-th="Product"><div class="row">
<div class="col-sm-2 hidden-xs"><img width="100" src="../images/frere.jpg" alt="Frere" class="img-responsive"/></div>
<div class="col-sm-10">
<h4 class="nomargin">Frere</h4>
<p>bad boy frere</p>
</div>
</div></td><td data-th="Price">.00</td><td data-th=""> </td><td data-th="Quantity">
<input type="number" min="0" name="item_qty_summary[1]" class="form-control text-center" value="4">
</td><td data-th="Subtotal" class="text-right" >0</td><td class="actions text-right">
<button name="submit[1]" type="submit" onClick="transferData(this)" class="btn btn-info btn-sm"><i class="fa fa-refresh"></i></button>
<a href="cart_update.php?removep=2015002&return_url=aHR0dC90aXF1ZXNob3AvaW5jbHVkZXMvdmlld19jYXJ0XzIwMTUucGhw" class="btn btn-danger btn-sm"><i class="fa fa-trash-o"></i></a>
</td></form></tr>
但是我收到了一条未定义的错误消息,而不是 id
我忽略了什么??
在您的函数中传递一个参数,如下所示:
function transferData(elem) {
并使用 $(elem)
而不是 $(this)
并像这样在 html 中使用:
onClick="transferData(this)"
根据您对 html 的更新,您可以这样使用:
var form_id= $(elem).closest('form').attr('id');
首先,将您的事件处理程序附加到 javascript ...
$("button[type='submit']").on('click', transferData);
... 然后,在事件处理程序中,this
是被单击的元素(提交按钮):
function transferData() {
var form_id= this.form.id;
...
}