Pergunta

Tenho um site onde usamos Javascript para enviar o formulário de login.No Firefox, ele solicita que o usuário lembre sua senha ao fazer login, mas no IE7 isso não acontece.

Depois de fazer algumas pesquisas, parece que o usuário só é solicitado no IE7 quando o formulário é enviado por meio de um controle Enviar.Eu criei alguns exemplos de HTML para provar que esse é o caso.

<html>
<head>
<title>test autocomplete</title>
<script type="text/javascript">
function submitForm()
{
    return document.forms[0].submit();
}
</script>
</head>
<body>
<form method="GET" action="test_autocomplete.html">
<input type="text" id="username" name="username">
<br>
<input type="password" id="password" name="password"/>
<br>
<a href="javascript:submitForm();">Submit</a>
<br>
<input type="submit"/>
</form>
</body>
</html>

O link href não recebe o prompt, mas o botão enviar receberá no IE7.Ambos funcionam no Firefox.

Não consigo fazer com que o estilo do meu site tenha a mesma aparência com um botão de envio. Alguém sabe como fazer com que o prompt para lembrar a senha apareça ao enviar via Javascript?

Foi útil?

Solução

Por que não tentar conectar a submissão do formulário dessa maneira?

<html>
    <head>
        <title>test autocomplete</title>
        <script type="text/javascript">
            function submitForm()
            {
                    return true;
            }
        </script>
    </head>
    <body>
        <form method="GET" action="test_autocomplete.html" onsubmit="return submitForm();">
            <input type="text" id="username" name="username">
            <br>
            <input type="password" id="password" name="password"/>
            <br>
            <a href="#" onclick="document.getElementById('FORMBUTTON').click();">Submit</a>
            <br>
            <input id="FORMBUTTON" type="submit"/>
        </form>
    </body>
</html>

Dessa forma, sua função será chamada se o link é clicado ou o botão Enviar é pressionado (ou a tecla Enter é pressionada) e você pode cancelar o envio retornando false. Isso pode afetar a maneira como o IE7 interpreta a submissão do formulário.

EDIT: Eu recomendaria sempre o envio do formulário de entrada dessa maneira, em vez de ligar para submeter () no objeto do formulário. Se você ligar para submeter (), ele não acionará o Onsubmit do objeto do formulário.

Outras dicas

Você tentou colocar o URL no href e anexar um manipulador de eventos de clique para enviar o formulário e retornar false do manipulador de cliques para que o URL não seja navegado.

Alternativamente, botão de envio oculto acionado via javascript?

Você pode tentar usar a u003Cbutton>tag HTML em vez de um link ou um botão de envio.u003C/button>

Por exemplo,

<button type="submit">Submit</button>

A u003Cbutton>tag é muito mais fácil de estilizar do que o padrãou003Cinput type="submit"> . Existem algumas peculiaridades de navegador, mas elas não são intransponíveis.u003C/button>

Um artigo realmente ótimo sobre o uso de u003Cbutton>pode ser encontrado em Partletree:u003C/button> Redescobrindo o elemento do botão

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