Почему дом не синхронизирован после вызова и обновления jquery ajax? - PullRequest
3 голосов
/ 02 октября 2009

У меня есть таблица, которая использует встроенное редактирование с помощью ajax для изменения полей. Таблица отсортирована по фамилии.

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

При строгом обновлении отображаются все правильные значения.

Почему мой DOM не синхронизирован? Как я могу получить обновление для отображения правильного значения?


Редактировать после ответов

Это был Firefox, сохраняющий предыдущее значение для полей ввода. Покопавшись в Интернете, я обнаружил, что добавление <form autocomplete="off"> заставит Firefox не кэшировать старое значение.

Ответы [ 2 ]

2 голосов
/ 02 октября 2009

Я думаю, что браузер кэширует предыдущие значения для поля формы (что отстой). Что действительно расстраивает, так это то, что если я изменяю несколько элементов, почти невозможно определить, является ли атрибут value правильным или текст в поле является правильным (так как он может идти в любом случае).

Я действительно удивлен, что вы используете ajax, но у вас нет кнопки автосортировки / автообновления.

В краткосрочной перспективе вы должны использовать сортируемые таблицы, чтобы пользователи не запутались, если они находятся на странице.

В долгосрочной перспективе вы должны найти решение, над которым я работаю, для решения очень похожей проблемы ...

Хранить данные (передавать их на сервер, сервер хранит их в БД), иметь в таблице всегда значения полей, установленные на стороне сервера из БД, и при загрузке страницы иметь js-скрипт, который перебирает все элементов ввода и вручную устанавливает значение поля из атрибута значения, что-то вроде:

$("table :input").each(
     $(this).value($(this.attr("value")));
);
2 голосов
/ 02 октября 2009

Почти наверняка связано с тем, что ваш браузер сохраняет значения формы через обновление. Можно ли организовать его так, чтобы при обновлении триггер, который вы используете для обновления DOM из поля ввода, снова срабатывал?

Трудно дать более подробную информацию, не зная, как ваш DOM и ваши поля ввода взаимодействуют в коде.

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