Rails: редактор на месте, но без обратной передачи?
Я использую Prototype в своем проекте Rails для редактирования на месте (через Ajax.InPlaceEditor) формы. Однако я не хочу, чтобы он немедленно отправлял сообщения и делал обновление - сама форма довольно сложна, и пользователь может отказаться от своих изменений. Только теперь они не могут, потому что форма незаметно (для них) обновила базу данных.
Итак, я думал о том, чтобы использовать Prototype InPlaceEditor без указания URL-адреса обратной передачи (или сделать его универсальным URL-адресом обратной передачи, возвращающим значение true), а затем в качестве части "onLeaveEditMode" для поля обновить его скрытым полем формы с помощью новое значение.
Таким образом, когда пользователь получает необычный внешний вид редактора на месте, но все еще может нажать "Отмена" внизу и отменить все изменения.
Итак, я приступил к выполнению этой миссии в небольшом тестовом прототипе, и он, кажется, работает - за исключением того, что это означает значительный объем кода JavaScript и, в некотором смысле, похоже на свержение цели InPlaceEditor. Это должно быть решенной проблемой, но мой Google-фу не возвращает ничего, как я хочу.
Что-то вроде этого (но, очевидно, не в виде сетки), где вы можете редактировать поля на месте, но должны нажать "сохранить", чтобы зафиксировать ваши изменения: http://www.nitobi.com/products/grid/editors/
Пара вопросов: 1) Есть ли существующий плагин rails или класс Prototype, чтобы сделать это для меня? 2) Если нет, мой подход звучит разумно?
Спасибо!!
1 ответ
Если вы просто хотите почувствовать себя встроенным редактором. Притворяться.
- Сохранить границы формы нет. Так что это будет выглядеть как обычный текст.
- При наведении выделите фон поля.
- На фокусе показать границу (путем добавления класса или изменения встроенных стилей).
- На Blur снова скрываются границы.
Вам не нужны призрачные скрытые поля. И большинство вещей это CSS.
Используйте jquery, чтобы минимизировать код JavaScript.:-)