使用Prototype如何阻止按钮提交表单?

时间:2011-06-23 18:34:28

标签: javascript forms javascript-events prototypejs

我有一个带有两个按钮的表单。底部应该将表单提交给服务器。在表单的中间还有另一个按钮,需要触发一个简单的评分函数,并在新的表单字段中添加此分数值(根据其存在将提交或不会提交)。

使用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>

4 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:3)

您的button无需自动提交表单。

给它一个type="button",什么都不会发生。 type="button"没有默认操作。然后在JS中设置操作。

了解详情:http://reference.sitepoint.com/html/button

答案 2 :(得分:0)

只需要附加到您不想提交的按钮的click事件的函数返回false。你也可以在事件函数中使用e.preventDefault。

答案 3 :(得分:0)

这似乎对我有用:

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

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


        });

随时告诉我你更优雅的答案! (为什么会这样......我现在只是在攻击Prototype,不知道最佳做法是什么。)