Вопрос

Я использую Prototype в своем проекте Rails для редактирования формы на месте (через Ajax.InPlaceEditor).Однако я не хочу, чтобы он немедленно отправлял ответ и выполнял обновление - сама форма довольно сложна, и пользователь может решить отказаться от своих изменений.Только вот не могут, потому что форма незаметно (для них) обновила базу.

Итак, я думал об использовании Prototype InPlaceEditor без указания URL-адреса обратной передачи (или сделать его общим URL-адресом обратной передачи, который возвращает true), а затем как часть «onLeaveEditMode» для поля обновить скрытое поле формы с помощью новое значение.

Таким образом, когда пользователь получает необычный внешний вид встроенного редактора, но при этом может нажать «Отмена» внизу и отменить все изменения.

Итак, я приступил к этой миссии с помощью небольшого тестового прототипа, и он, кажется, работает - за исключением того, что это требует значительного количества кода JavaScript и, в некотором смысле, похоже на нарушение цели InPlaceEditor.Это должна быть решенная проблема, но мой Google-Fu не возвращает ничего такого, как я хочу.

Что-то вроде этого (но, очевидно, не в виде сетки), где вы можете редактировать поля на месте, но должны нажать «Сохранить», чтобы сохранить изменения:http://www.nitobi.com/products/grid/editors/

Пара вопросов:1) Существует ли существующий плагин рельсов или класс прототипа, который сделает это за меня?2) Если нет, разумен ли мой подход?

Спасибо!!

Это было полезно?

Решение

Если вам просто нужно ощущение встроенного редактирования.Притворяться.

  • Не оставляйте поля формы без границ.Так это будет выглядеть как обычный текст.
  • При наведении курсора мыши выделите фон поля.
  • В фокусе показать границу (путем добавления класса или изменения встроенных стилей).
  • На размытии снова скройте границы.

Вам не нужны призрачные скрытые поля.И большая часть материала — CSS.

Используйте jquery, чтобы минимизировать код JavaScript.:-)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top