2010-03-20 21 views
2

我正在嘗試關注這個帖子How can I unobtrusively disable submit buttons with Javascript and Prototype?,但是我無法完成它的工作。表單觸發一個RJS函數,所以我需要保持助手的onclick事件不變。 RJS會返回/重新載入相同的表格以及兩個新文本。我很困惑。這裏是我的導軌的形式代碼:如何禁用Rails提交按鈕以及Prototype helpers和RJS?

.span-20#comparison 
/new comparison . . . 
/voting forms (also reloaded) 
    .span-4.prepend-3.append-6 
    - form_remote_tag :action => url_for(:controller => :comparisons), :method => :post do 
     = hidden_field_tag :poem1_id, poems[:a].id 
     = hidden_field_tag :poem2_id, poems[:b].id 
     = hidden_field_tag :response, 1 
     = submit_tag "Vote for me", :disabled => false, :disable_with => 'Vote for me', :class => "compare"  

    .span-4.append-3.last 
    - form_remote_tag :action => url_for(:controller => :comparisons), :method => :post do 
     = hidden_field_tag :poem1_id, poems[:a].id 
     = hidden_field_tag :poem2_id, poems[:b].id 
     = hidden_field_tag :response, 2 
     = submit_tag "Vote for me", :disable_with => 'Vote for me', :class => "compare" 

    .span-4.prepend-8.append-8.prepend-top.last 
    - form_remote_tag :action => url_for(:controller => :comparisons), :method => :post do 
     = hidden_field_tag :poem1_id, poems[:a].id 
     = hidden_field_tag :poem2_id, poems[:b].id 
     = hidden_field_tag :response, 'draw' 
     = submit_tag "Declare Draw", :disable_with => 'Declare Draw', :class => "compare" 

RJS

page.replace_html :comparison, :partial => 'poems', :object => @poems 
page.insert_html :top, :previous, :partial => 'comparison', :object => @comparison 
page << "Effect.ScrollTo($('top'));" 

回答

0

這裏是你可以使用原型做這件事:

<script type="text/javascript"> 
    document.observe("dom:loaded" function() { 
    $$("input .compare").each(function(submit) { 
     submit.observe("click", function() { 
     submit = true; 
     }); 
    }); 
    }); 
</script> 

這增加了一個onclick事件處理程序,以每input在加載DOM時使用compare CSS類(即您的提交按鈕)。 onclick事件處理程序在單擊時禁用每個按鈕。請注意,以這種方式使用Prototype添加事件處理程序不會替換元素上的任何現有事件處理程序。

+0

這是如何禁用額外點擊的? – Jesse 2010-03-20 20:53:25

+0

對不起,你試圖做什麼並不是很清楚。 – 2010-03-20 23:00:47