Ajax: автозаполнение полей?

Допустим, такая ситуация. Есть ajax-приложение, в котором форма логина выглядит как-то так:



<form><br>
    <input type="text"     name="ajax-username" /><br>
    <input type="password" name="ajax-password" /><br>
    <input type="submit" /><br>
</form>​<br>




var form = document.querySelector( 'form' );<br>
<br>
form.addEventListener( 'submit', function (e) {<br>
    ajaxLogin(function () {<br>
        form.innerHTML += '<br /> success';<br>
    });<br>
    e.preventDefault();<br>
}, false);​<br>




Т.Е. Мы перехватываем сабмит формы и вместо того, чтобы перезапрашивать страницу — отправляем её ajax'ом, логинимся и JS'ом генерим новый код.



Но в такой подходе всё прекрасно кроме одного — не происходит «запоминание» введённой информации — логина и пароля и следующий вход вместо того, чтобы их браузер подставил приходится вводить их заново.



Если просто убрать e.preventDefault(), то страница после сабмита формы будет перезагружаться.



Посоветуете ли какое-либо решение этой проблемы?
  • Вопрос задан
  • 4518 просмотров
Решения вопроса 1
taliban
@taliban
php программист
1. Сделайте себе фейковый адрес который ничего не делает и возвращает 200 ответ
2. Форме укажите этот фейковый адрес и _target=«iframe_name» (естественно фрейм должен быть)
2. Перед аяксовой отправкой данных на правильный адрес, делайте реальный сабмит формы.
3. Логиньтесь аяксом, смотрите как браузер спрашивает не запомнить ли логин/пароль
4.!!!
5. PROFIT!
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@PomanoB
Попробуйте использовать history.pushState
Ответ написан
@1x1
Если я правильно помню, не запоминает только Google Chrome. В качестве решения можно перенаправить форму в скрытый фрейм, с обязательным указанием для формы атрибута action, отличного от текущей страницы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы