這是這個問題的一個副本:如何使用jquery 1.8獲取輸入的父窗體?
...但時間繼續前行。我認爲接受的答案不再有效。
我想提交複選框的形式,如果複選框已更改。
$(document).on("change", "#my_checkbox_input", function() {
$(this).???
});
???
應該看起來像jquery版本> = 1.8?
這是這個問題的一個副本:如何使用jquery 1.8獲取輸入的父窗體?
...但時間繼續前行。我認爲接受的答案不再有效。
我想提交複選框的形式,如果複選框已更改。
$(document).on("change", "#my_checkbox_input", function() {
$(this).???
});
???
應該看起來像jquery版本> = 1.8?
您可以使用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()
。
希望這會有所幫助。
嘗試:
$(this).parent()
或者:
$(this).parent().find('#parent_id')
您可以使用closest()
尋父form
元素,然後調用submit()
它:
$(document).on("change", "#my_checkbox_input", function() {
$(this).closest('form').submit();
});
還要注意的是closest()
從jQuery 1.3開始就已經可用了,所以ver錫安在這種情況下幾乎沒有什麼區別。
下面的代碼可以在這種情況下工作,但請注意其他人已經用上述相同的語法來回答。
$(document).on("change", "#my_checkbox_input", function() {
var form = $(this).closest('form');
// do whatever you want with the form as `form`
});
的.closest()
方法通過搜索DOM樹中的元素和他們的祖先,並返回最近的一個匹配的傳遞查詢。在這種情況下,我們正在尋找一個表單,所以它會返回你正在尋找的表單。
你可以顯示你的HTML,以便我們知道你到底想要做什麼 –
@Anant我想盡量簡化問題。我不認爲這裏需要HTML。如果您的評論獲得了更多兩個upvotes,那麼我錯了,我會提供html。 – guettli
如果你需要抓取'