Форма IE7 не запрашивает запомнить пароль при отправке через javascript

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

Вопрос

У меня есть веб-сайт, где мы используем Javascript для отправки формы входа в систему.В Firefox он предлагает пользователю запомнить свой пароль при входе в систему, но в IE7 этого не происходит.

После проведения некоторых исследований, похоже, что пользователю предлагается только в IE7, когда форма отправляется через элемент управления Submit.Я создал несколько примеров html, чтобы доказать, что это так.

<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>

Ссылка href не получает приглашение, но кнопка отправки появится в IE7.Оба работают в Firefox.

Я не могу заставить стиль моего сайта выглядеть одинаково с помощью кнопки отправки, кто-нибудь знает, как заставить запрос запомнить пароль отображаться при отправке через Javascript?

Это было полезно?

Решение

Почему бы не попробовать настроить отправку формы таким образом?

<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>

Таким образом, ваша функция будет вызвана независимо от того, нажата ли ссылка или кнопка отправки (или клавиша enter нажата), и вы можете отменить отправку, вернув значение false.Это может повлиять на то, как IE7 интерпретирует отправку формы.

Редактировать:Я бы рекомендовал всегда подключать отправку формы таким образом, а не вызывать функцию submit() для объекта form.Если вы вызовете submit(), то это не вызовет onsubmit объекта формы.

Другие советы

Вы пробовали вводить URL-адрес в href и прикреплять обработчик событий click для отправки формы и возвращать false из обработчика click, чтобы по URL-адресу не осуществлялся переход?

Альтернативно скрытая кнопка отправки, запускаемая с помощью javascript?

Вы могли бы попробовать использовать HTML <button> тег вместо ссылки или кнопки отправки.

Например,

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

Стиль тега <button> намного проще, чем стандартного <input type="submit">.Есть некоторые кроссбраузерные особенности, но они не являются непреодолимыми.

Действительно отличную статью об использовании <button> можно найти на particletree: Повторное открытие элемента button

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top