这是这个问题的重复:
......但时间继续。我认为接受的答案不再有效。
如果复选框已更改,我想提交复选框的表单。
$(document).on("change", "#my_checkbox_input", function() {
$(this).???
});
使用jquery版本> = 1.8时,???
应该是什么样的?
答案 0 :(得分:3)
您可以使用closest()
查找父form
元素,然后在其上调用submit()
:
$(document).on("change", "#my_checkbox_input", function() {
$(this).closest('form').submit();
});
另请注意,自{jQuery 1.3}以来closest()
已经可用,所以版本在这种情况下几乎没有什么区别。
答案 1 :(得分:1)
您可以使用在事件上下文中引用的this
关键字到当前更改元素的对象,然后使用this.form
获取当前元素包装的父表单,然后调用submit()
方法如果您想提交它,请执行以下操作:
$(document).on("change", "#my_checkbox_input", function() {
this.form.submit();
});
或者首先将表单转换为jQuery对象:
$(document).on("change", "#my_checkbox_input", function() {
$(this.form).submit();
});
你总是可以使用jQuery方法.parents()
或.closest()
来获取父元素,在这种情况下使用引用当前元素的jQuery对象$(this)
然后指定父元素节点名称(form
),如:
$(document).on("change", "#my_checkbox_input", function() {
$(this).parents('form').submit();
});
注意: .closest()
在速度方面比.parents()
效率更高。
希望这有帮助。
答案 2 :(得分:0)
尝试:
$(this).parent()
或者:
$(this).parent().find('#parent_id')
答案 3 :(得分:0)
以下代码适用于这种情况,但请注意其他人已使用上述相同语法回答。
$(document).on("change", "#my_checkbox_input", function() {
var form = $(this).closest('form');
// do whatever you want with the form as `form`
});
.closest()
方法搜索DOM树中的元素及其祖先,并返回与传递的查询匹配的最接近的元素及其祖先。在这种情况下,我们正在寻找一个表单,因此它将返回您正在寻找的表单。