Метод данных отменяет подтверждение данных на старых jquery-рельсах
Я поддерживаю старый сайт с Rails 3.2, jquery 1.7, с пользовательским jquery-rails (в gemfile указано, что это 0.2.6 - но в общедоступной папке есть пользовательский, поэтому его можно было обновить)
У меня есть ссылка для удаления (data-method=delete) с подтверждением (data-verify ="Вы уверены, что хотите удалить это?"). Однако даже если я нажму кнопку "Отмена" в поле подтверждения, элемент будет удален. Я предполагаю, что это только начало происходить недавно. Есть идеи, почему это начало происходить и как это исправить?
1 ответ
Так что мне удалось это исправить, взломав jquery.rails.js следующим образом:
/**
* confirmation handler
*/
$('a[data-confirm],input[data-confirm]').live('click', function (event) {
var el = $(this);
if (el.triggerAndReturn('confirm')) {
if (!confirm(el.attr('data-confirm'))) {
event.preventDefault();
$(event.currentTarget).data('failed-confirm', true);
return false;
}
...
Таким образом, если пользователь нажимает кнопку "Отмена", он устанавливает данные для ссылки, по которой я могу проверить. Затем в начале обработчика метода данных:
$('a[data-method]:not([data-remote])').live('click', function (e){
if($(e.currentTarget).data('failed-confirm')) {
$(e.currentTarget).data('failed-confirm', false);
return false;
}
...
Кажется, это работает, но я все еще заинтригован тем, что изменилось...