автозаполнение jquery-ui прерывает хранение в браузере заполненных полей формы - PullRequest
0 голосов
/ 15 октября 2011

Использование автозаполнения jquery и jquery-ui в форме. Проблема в том, что если пользователь заполняет форму, затем перемещается на другую страницу, а затем возвращается к форме, все поля будут заполнены, кроме поля с автозаполнением, которое будет пустым.

Я уточнил это до:

<script type="text/javascript">
   window.onload = function(){ $("#ac_box").autocomplete({
    source: ("tatooine dagobah hoth bespin yavin alderaan ry'leh kessel nar-shadda".split(' '))})
   };*
</script>
...
<form><input type="text" id="ac_box"></form>

отобразит проблему, но удаление сценария заставит ее исчезнуть (текст остается в поле, когда покидает страницу и возвращается). Я поиграл с опциями автозаполнения, но я наверняка что-то упустил.

Кроме того, похоже, что это может отличаться в разных браузерах. Я получаю проблему в последней версии Chrome на Mac

1 Ответ

0 голосов
/ 18 октября 2011

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

Поскольку виджет автозаполнения пользовательского интерфейса jQuery отключает собственное автозаполнение, он также непреднамеренно отключает способность браузера запоминать значение поля во время навигации. Если вы повторно включите собственное автозаполнение перед выгрузкой страницы, браузер запомнит это значение.

Я только что получил исправление для этого, поэтому оно должно начать работать должным образом в 1.8.17. А пока вы можете добавить это на свои страницы, чтобы решить проблему:

$( window ).bind( "beforeunload", function() {
    $( ".ui-autocomplete-input" ).removeAttr( "autocomplete" );
});
...