簡體   English   中英

Rails 3 - Javascript:確認不適用於link_to和button_to:method =>:delete

[英]Rails 3 - Javascript :confirm not working for link_to and button_to with :method => :delete

在我的index.html.erb文件中,我試圖顯示我的對象的標題(“列表”)和正常的“顯示”,“編輯”和“銷毀”鏈接和/或按鈕。 使用:method =>:delete and:confirm =>“你確定嗎?”,link_to或button_to都不會顯示javascript確認框。 這是我的index.html.erb:

<h2><a href="#" onclick="alert('Hello world!'); return false;">Click Here for a Javascript test</a></h2>   
<table>  
  <tr>
    <th>List Title</th>
    <th></th>
    <th></th>
    <th></th>
  </tr>    
<% @listings.each do |listing| %>
  <tr>
    <td><%= listing.title %></td>
    <td><%= button_to 'Show', listing %></td>
    <td><%= button_to 'Edit', edit_listing_path(listing) %></td>
    <td><%= button_to( 'Destroy', listing, 
                       :confirm => 'Are you sure?', :method => :delete)%> </td>
    <td><%= link_to "Destroy", listing, :confirm => "Are you sure?", :method => :delete %> </td>
  </tr>
<% end %>
</table>

列表頂部的“Hello World”JS確認鏈接完美無缺,因此我非常確定不引人注目的javascript對我的應用程序運行正常。 (我還確認我有必要的--javascript_include_tag:defaults和csrf_meta_tag在我的應用程序模板中。)Rails文檔確認支持我正在使用的參數(url,:confirm,:method)。 但是,button_to或link_to都不會生成由以下指示的JS警報:confirm。 另外一點奇怪,使用完全相同的參數,button_to將刪除記錄而link_to則不會。

任何有關如何調查以解決此問題的建議將不勝感激。

謝謝!

在我不小心包括Prototype和jQuery之前,我遇到了這個問題。 檢查正在加載的資源,以確保您不以某種方式加載這兩個框架。

我剛剛遇到了同樣的問題,最新的Rails是最新的,並通過將:confirm選項移動到link_to參數的html_options部分來解決它,例如:

<%= link_to (t '.scenarios.open'), { :controller => 'scenarios', :action => 'show', :name => scenario.name }, :confirm => 'really?' %>

確實,需要jquery-rails gem,但是那個已經在這里且正確鏈接了。

檢查Rails的jQuery (jquery_ujs)的Unobtrusive腳本編寫適配器是否已加載到您的站點,然后您不必擔心第三方javascripts:

// app/assets/javascript/application.js    
//= require jquery_ujs

AFAIK這個問題是由於link_to選項引起的,當它的方法不是GET(http方法)時引起問題,所以我使用的button_to選項工作正常

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM