Форма IE7 не запрашивает запомнить пароль при отправке через javascript
-
03-07-2019 - |
Вопрос
У меня есть веб-сайт, где мы используем 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