В Rails 3, передавая параметр: confirm в link_to, будет заполняться атрибут подтверждения данных ссылки. Это вызовет JS alert() при нажатии ссылки.
Я использую адаптер рельсов jQuery UJS (https://github.com/rails/jquery-ujs). Соответствующий код из rails.js:
$('body').delegate('a[data-confirm], button[data-confirm], input[data-confirm]', 'click.rails', function () {
var el = $(this);
if (el.triggerAndReturn('confirm')) {
if (!confirm(el.attr('data-confirm'))) {
return false;
}
}
});
и
triggerAndReturn: function (name, data) {
var event = new $.Event(name);
this.trigger(event, data);
return event.result !== false;
}
Я хотел бы знать, как это можно было бы изменить, чтобы вместо этого появилось диалоговое окно jQuery (например, диалоговое окно jQuery UI), позволяющее пользователю подтвердить или отменить.
Мое знание JavaScript недостаточно для достижения этого элегантно. Мой текущий подход состоял бы в том, чтобы просто переписать функцию $('body'). Delegate(), чтобы вместо этого создать лайтбокс. Однако я полагаю, что существует более эффективный подход, чем это.