【问题标题】:Set submit button for ng-submit form为 ng-submit 表单设置提交按钮
【发布时间】:2014-10-24 11:37:16
【问题描述】:

根据the docs,在表单中按 enter 将“触发第一个按钮或 input[type=submit] (ngClick) 上的点击处理程序和封闭表单上的提交处理程序 (ngSubmit) em>”。有什么方法可以设置触发哪个按钮?

我有一个表单,其中pickadate.js 在提交按钮之前创建了一些按钮元素。

【问题讨论】:

  • 你能抓住回车键并阻止默认行为吗?
  • 为什么不直接在表单上使用ng-submit 而不是某个按钮?

标签: angularjs form-submit


【解决方案1】:

提交按钮之前有多少个按钮并不重要。

如果你的表单元素函数中有ngSubmit 指令,ng-submit="" 内的函数将被触发。

例如。

<div ng-controller="MyCtrl">
    <form ng-submit="processForm()" name="myFormName">
        <input type="text" ng-model="myForm.name" placeholder="name" required="required"/>
        <input type="text" ng-model="myForm.email" placeholder="email" required="required"/>

        <input type="button" value="First button" ng-click="alert('First button')"/>
        <input type="button" value="Second button" ng-click="alert('Second button')"/>
        <input type="submit" value="Submit"/>
    </form>
</div>

当您按下“Enter”键(在我的示例中)时,角度将调用 $scope.processForm 函数,您将看到“提交表单..”消息。

$scope.processForm = function(){
    alert("Submitting form..");
}

我已经为您创建了JSFiddle 示例。

【讨论】:

  • 按提交按钮有效,在选择元素上按 Enter 有效,但对我来说不是 input[type=text] ..
  • 感谢您的回答。小提琴似乎有问题:“第一个按钮”和“第二个按钮”没有向我显示警报。
猜你喜欢
  • 1970-01-01
  • 2017-12-24
  • 1970-01-01
  • 1970-01-01
  • 2014-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多