2010-10-31 4 views
3

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

Так что в основном то, что мне нужно, это «Сбросить» функцию «Сброс». Имеют смысл?

ответ

4

Попробуйте это:

$("#yourForm").bind("reset", function() { 

    // reset the form manually with the "newest" data 

    return false; 
}); 

В этом случае вам придется хранить новые данные (которые вы получили от обратного вызова Ajax). И затем, когда пользователь сбрасывает форму, вы вручную заполняете элементы формы этими данными.

+0

Да, это то, что я планировал делать, если бы не было какой-то классной новой функции html5 или чего-то еще. –

0

Я не думаю, что это возможно - Сброс всегда возвращается к значениям, указанным в HTML-коде. Полагаю, что самым простым способом будут помещены полученные данные AJAX где-то (т. Е. Скрытые поля) и предоставить пользовательскую кнопку сброса, которая будет загружать эти данные (со скрытых входов или где бы вы их сохраняли) обратно в форму.

3

Существует также родной путь.

элементы формы имеют атрибуты для хранения начального значения.

Чтобы сделать это, следующий будет интересно:

DefaultValue (ввода текста, текстовое поле)
defaultChecked (радио, флажок)
defaultSelected (опция)

Итак, что нужно сделать, чтобы действительно установить новую начальную точку для reset(): Прогуляйте элементы и назначьте текущие атрибуты (значение, отмечено, выбрано) для этих атрибутов по умолчанию Утес.

+0

+1 Я не тестировал это, но, согласно http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(Document_Object_Model), он должен поддерживаться всеми соответствующими браузерами. btw, он определен в спецификации DOM HTML: http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-26091157 –

Смежные вопросы