Я внедряю функцию обнаружения грязи для веб-приложения. «Грязность», которая меня интересует, - это ценность сервера по сравнению с тем, что отображается в форме. Сервер работает под управлением Django, большинство наших скриптов написано на jQuery.
Мы обслуживаем поля формы с правильными значениями по умолчанию, соответствующими значению на сервере, например
<input name="foo" type="text" value="this is the saved value" id="id_foo" />
Стандартный ответ - перебирать входные данные формы и сохранять их начальные значения для последующего сравнения во время загрузки.
Это работает в большинстве случаев, но Firefox ломает это, иногда игнорируя предоставленное значение и заменяя его последним вводом пользователя. Так, например: мы обслуживаем форму, пользователь изменяет ее («теперь она грязная»), затем обновляет; Firefox заменяет значение последним вводом пользователя.
Это нарушает сценарий обнаружения грязи, потому что его начальное значение не , которое предоставил сервер, а то, которое пользователь ввел до обновления. В этом сценарии нет способа получить доступ к исходному значению.
Как другие разработчики справляются с этим? Сейчас я поставляю скрытый диапазон с исходным значением real , но он невероятно хакерский:
<input name="foo" type="text" value="this is the saved value" id="id_foo" />
<span class="original-value" id="id_foo_orig">this is the saved value</span>
Есть ли способ отключить это поведение для входов в Firefox? (IE и Chrome по крайней мере не делают этого)
Я что-то упустил здесь?
Спасибо
Роберт