2011-06-23 119 views
1

我有兩個按鈕的窗體。最底層的應該將表單提交給服務器。在表單中間還有一個按鈕需要觸發一個簡單的評分功能,並將該評分值添加到一個新的表單字段中(根據其存在情況將不會提交)。使用Prototype如何防止按鈕提交表單?

使用原型js庫,我將如何取消這個中間按鈕從提交表單,並讓它執行我的計算/ DOM添加功能?

編輯:

我所目前沒有阻止表單提交...

$$('.form-submit-calculate').each(function(calculator){ 
calculator.observe("click",function(){alert('calculate'); return false; }); 
}); 

<div id="cid_31" class="form-input-wide"> 
        <div style="margin-left:406px" class="form-buttons-wrapper"> 
         <button id="input_31" class="form-submit-calculate"> 
          Get Score 
         </button> 
        </div> 
       </div> 
+0

也許至今添加你的代碼到你的問題。它可能使我們更容易幫助。 – Jivings

回答

7
Event.observe('scoreButton', 'click', function(e) { 
    Event.stop(e); 
    } 
}); 
+0

這是正確的做法。接受的答案是不可接受的。 – peter

0

只是有其連接到Click事件的功能你不想提交的按鈕返回false。你也可以在事件函數中使用e.preventDefault。

+0

嗯,看我的編輯。我想我現在已經擁有了這個功能,但它並不奏效。 –

0

這似乎這樣的伎倆對我來說:

$$('.form-submit-calculate').each(function(calculator){ 

      calculator.onclick = function(){ 
        alert('calculate'); 
        return false; 
       } 


     }); 

隨意告訴我你更好更優雅的回答! (以及爲什麼它...我只是現在繞着Prototype進行攻擊,不知道最佳做法是什麼。)

3

您的button不需要自動提交表單。

給它一個type="button",什麼都不會發生。 type="button"沒有默認操作。然後在你的JS中設置動作。

瞭解更多:http://reference.sitepoint.com/html/button

+0

環遊圖書館的道具! +1喜歡這樣的解決方案。我還了解到IE中默認的'type'已經是'button',但所有其他瀏覽器都默認爲'submit' –

相關問題