Форма IE7 не запрашивается для запоминания пароля при отправке через JavaScript - PullRequest
4 голосов
/ 01 октября 2008

У меня есть веб-сайт, где мы используем 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?

Ответы [ 3 ]

5 голосов
/ 01 октября 2008

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

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

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

Edit: я бы рекомендовал всегда перехватывать отправку формы таким способом, а не вызывать submit () для объекта формы. Если вы вызовите submit (), он не будет вызывать отправку объекта формы.

1 голос
/ 01 октября 2008

Вы можете попробовать использовать тег HTML

Например,

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

Тег . Есть некоторые кросс-браузерные особенности, но они не являются непреодолимыми.

По-настоящему замечательную статью об использовании Повторное открытие элемента кнопки

1 голос
/ 01 октября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...