2011-06-23 122 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' –

相关问题