/ / Como obter o pai do formulário de uma entrada com jquery 1.8? - jquery

Como obter o formulário pai de uma entrada com jquery 1.8? - jquery

Esta é uma duplicata desta questão:

... mas o tempo seguiu em frente. Eu acho que a resposta aceita não é mais válida.

Quero enviar o formulário da caixa de seleção, se a caixa de seleção foi alterada.

$(document).on("change", "#my_checkbox_input", function() {
$(this).???
});

O que deveria ??? parece com a versão jquery> = 1,8?

Respostas:

1 para resposta № 1

Você poderia usar o this palavra-chave que se refere no contexto do evento para o objeto do elemento atual alterado, então é só usar this.form para obter o formulário pai em que o elemento atual é empacotado, ligue para o submit() método se você quiser enviá-lo como:

$(document).on("change", "#my_checkbox_input", function() {
this.form.submit();
});

Ou também convertendo o formulário para o objeto jQuery primeiro:

$(document).on("change", "#my_checkbox_input", function() {
$(this.form).submit();
});

E você sempre pode usar os métodos jQuery .parents() ou .closest() para obter o elemento pai, neste caso use o objeto jQuery $(this) que se referem ao elemento atual, em seguida, especifique o nome do nó pai (form), gostar :

$(document).on("change", "#my_checkbox_input", function() {
$(this).parents("form").submit();
});

NOTA : .closest() é mais eficiente do que .parents() em termos de velocidade.

Espero que isto ajude.


3 para resposta № 2

Você pode usar closest() para encontrar o pai form elemento, em seguida, chamar submit() nele:

$(document).on("change", "#my_checkbox_input", function() {
$(this).closest("form").submit();
});

Observe também que closest() está disponível desde o jQuery 1.3, então a versão faz pouca diferença neste caso.


0 para resposta № 3

Experimentar:

$(this).parent()

Ou:

$(this).parent().find("#parent_id")

0 para a resposta № 4

O código a seguir funcionará nessa situação, mas observe que outras pessoas responderam com a mesma sintaxe acima.

$(document).on("change", "#my_checkbox_input", function() {
var form = $(this).closest("form");
// do whatever you want with the form as `form`
});

o .closest() método procura por elementos e suasancestrais na árvore DOM e retorna o mais próximo que corresponda à consulta passada. Nesse caso, estávamos procurando um formulário, então ele retornará o formulário que você está procurando.