AngularJS:表单内的所有按钮触发提交?

时间:2013-03-28 17:06:37

标签: twitter-bootstrap angularjs

如果文档中有这个内容我提前道歉,但我似乎无法找到它。

我有一个非常直接的形式,它使用几个按钮,因为我正在使用twitter bootstrap。问题是单击表单中的任何按钮似乎触发了一个有角度的提交事件:在我的表单中有几个输入字段,我在其中使用“require”属性,因此单击任何按钮会打开一个对话框,说明该字段是需要。这一切都很好,除了我只想在用户点击实际提交按钮时进行验证。

我已经尝试将ng-submit设置为一个到目前为止只返回false的函数,但这似乎没有任何影响。

更新:我找到了一个使用event.preventDefault()的指令的临时解决方法。然而,这似乎有点过分,也意味着我必须将它附加到每个按钮。

<div class="row-fluid">
    <div class="span12">
        <form ng-submit="onSubmit()" class="form-horizontal">
            <div class="row-fluid">
                <div class="span12">
                    <div class="katana-technician-form">
                        <div class="control-group">
                            <label class="control-label">Tekniker
                                <div class="controls">
                                    <div class="input-append">
                                        <input type="text" class="span2" />
                                        <div class="btn-group">
                                            <!-- Triggers onSubmit-->
                                            <button data-toggle="dropdown" class="btn dropdown-toggle">Velg<span class="caret"></span>

                                            </button>
                                            <ul class="dropdown-menu">
                                                <li>Kake</li>
                                                <li>Bake</li>
                                            </ul>
                                        </div>
                                    </div>
                                </div>
                            </label>
                        </div>
                    </div>
                </div>
            </div>
            <div class="row-fluid">
                <div class="span12">
                    <!-- Triggers onSubmit-->
                    <button type="submit"></button>
                </div>
            </div>
    </div>
    </form>
</div>
</div>

1 个答案:

答案 0 :(得分:93)

您应该尝试在按钮上设置type="button"

This question详细说明了这一点。