Я создаю приложение Ruby On Rails 3.0.3 с JQuery 1.4.4 и jQuery UJS rails.js (https://github.com/rails/jquery-ujs)
У меня есть модель / представление / контроллер, сгенерированная скаффолдом - Документ, в котором у меня есть ссылка для удаления в файле app / views / documents / index.html.haml:
link_to "delete", document, :confirm => "Are you sure?", :method => :delete
Это генерирует этот HTML:
<a href="/documents/1" data-confirm="Are you sure?" data-method="delete" rel="nofollow">Destroy</a>
Что, кажется, очень хорошо.
Когда я нажимаю эту ссылку " Уничтожить ", я вижу браузер Подтверждение () , а когда нажимаю Отмена Я ожидаю, что ничего не произойдет.
НО
Функциональность удаления происходит, и документ удаляется.
У кого-то такая же проблема или я что-то не так делаю?
В настоящее время я выкопал это далеко:
Я посмотрел на jquery-ujs rails.js, и есть два .live () событий, прикрепленных к одному и тому же якору:
1) $ ('a [подтверждение данных], ввод [подтверждение данных]'). Live ('щелчок', функция () {...}
2) $ ('a [метод данных]: not ([data-remote])'). Live ('click', function (e) {...}
Сначала live () выполнить return false; , что, как я понимаю, должно затормозить всю цепочку выполнения, но это не так. Второй live () все еще выполняется, и этот второй live () - это место, где создается и отправляется форма для уничтожения.