JQuery load () com função de retorno de chamada não captura clique ()

StackOverflow https://stackoverflow.com/questions/3834008

  •  26-09-2019
  •  | 
  •  

Pergunta

Não estou tendo sorte em obter uma caixa de diálogo JQueryui para o Formulário Ajax Carregar um, que se envia via Ajax.

Tudo funciona até o ponto de capturar o formulário que está sendo enviado e, em vez disso, enviá -lo através de uma chamada AJAX. Assim, a ação da forma é acionada e o navegador é redirecionado. A chamada do Ajax nunca é feita.

Meu código é o seguinte

$(document).ready(function() {
$('.viewOrder').click(function() {
    $('#displayOrder').load(this.href, [], function() {
        console.log("landed here");

            $('#blah').click(function() {
                console.log("submiting the form via ajax");

                $.ajax({
                    url: "/ajax/orderupdate",
                    type: "GET",
                    data: data,
                    cache: false,

                    //success
                    success: function (data) {
                        console.log("worked:");
                    }
                });
                return false;
            });
    });
    return false;
});

});

.vieworde é o href que é carregado com AJAX. Isso funciona bem. Eu já li muitas perguntas semelhantes aqui e parece que o load () não executa scripts incorporados no retorno HTML, mas meu código de retorno é puro HTML sem scripts. Alguma ideia?

Foi útil?

Solução

Os eventos estão vinculados à carga da página. Na página Carregar o formulário que você está vinculando, o evento de clique não existe. Eu uso o plug -in LiveQuery, mas eles adicionaram ao vivo ao JQuery 4, que você também pode usar (eu tive alguns problemas com o IE, então voltei ao LiveQuery)

Então carregue o LiveQuery com seus scripts http://docs.jquery.com/plugins/livequery

e mudar

$ ('#orderUpdate'). submeter (function () {

para

$ ("#orderUpdate"). LiveQuery ("submeter", function () {

Outras dicas

IMHO você deve tentar capturar o submit Em vez do clique, assim você evita submetidos pelo teclado, e pode até resolver seu problema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top