O formulário do jquery não está funcionando no IE
O que estamos tentando fazer aqui é que tenhamos um formulário com um ID de upgrade_form. Também temos um formulário chamado formulário 'paypal_submit'. Este formulário está em branco. 'upgrade_form' possui campos de detalhes de cobrança (endereço, nome, validade, etc.)
Em seguida, temos apenas um botão de envio, e a lógica era que ele enviaria o formulário se um botão de opção do cartão de crédito estiver marcado, mas exibirá um nromodal (http://nyromodal.nyrodev.com) lightbox quando você escolhe o botão de opção paypal e clica em enviar.
EDIT *Ok, reformulamos totalmente todo o processo. Primeiro, adicionamos 2 campos ocultos que não estão incluídos no formulário. Esses 2 campos contêm URLs para cartão de crédito e paypal. Ao selecionar o botão de opção do cartão de crédito, você obtém o URL do cartão de crédito. Quando você seleciona o botão de opção paypal, recebe o URL do paypal.
Quando você clica no botão de opção, alteramos a ação do formulário com o seguinte:
$('#upgrade_form').attr('action', $('#credit-card-target-url').val())
(URL do cartão de crédito é o campo oculto)
Então, quando clicamos no link na caixa de luz nromodal, chamamos
$('#upgrade_form').submit();
MAS! AINDA NÃO FUNCIONA EM QUALQUER IE. Alguma ajuda nisso? Estamos instalando o depurador de scripts sugerido no IE, mas estou pessimista de que não veremos nada.
EDITAR
Apenas tentei novamente este. Tiramos a mesa de luz e o outro código. Começamos com um formulário básico com um link que, quando pressionado, chama:
$('#upgrade_form').submit();
Ainda não funciona no IE. Então é por causa do submit () do jquery?
Ok, eu pesquisei no jquery submit que não funciona no IE e achei o seguinte:O formulário jQuery submit () não está funcionando no IE6?
Mas verifiquei nosso código e nosso botão 'enviar' é realmente um link, e procurei no documento gerado e não encontrei nenhuma entrada chamada envio. Quando o link é clicado, adicionei um alerta para verificar se o formulário existe (devido ao problema nulo nodeName) e recebo o alerta com o formulário html. Apenas pára no envio.
aqui está o código agora:
$('#paypalbutton').click( function() {
alert($('form#upgrade_form').html());
$('form#upgrade_form').submit();
return true;
}
O IE para nesta linha no jquery:
nodeName: function( elem, name ) {
return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
},