Angular-UI $对话框和表单在回车键上提交

时间:2013-07-09 14:43:27

标签: angularjs angular-ui angular-ui-bootstrap

从我所看到的,在AngularJS中处理对话框中的输入键的推荐方法是放置一个< form>标签和对话框内的提交按钮。

足够公平,但如果您使用Angular-UI及其$ dialog服务,则在按Enter键时,表单将以静默方式关闭。没办法拦截那个。 即使您将处理程序附加到ng-click或ng-submit,表单也会关闭而不会返回任何结果。

我还需要做些什么

[编辑]

解决了它,我必须明确指出我的“取消”按钮是“按钮”类型。 好像它默认为“提交”?

所以除了我的html表单技能之外没有真正的问题:)

2 个答案:

答案 0 :(得分:29)

回答我自己的问题。 按钮似乎默认提交(?),如果我明确地将它们设置为type =“button”,那么当在表单输入字段中按Enter键时它们不会触发回发。

<form>
     <input type="text" ... />
     <button type="button" ng-click=...>Cancel</button>
     <button type="submit" ng-click=...>OK</button>
</form>

这样,按下输入字段中的回车键将触发单击确定按钮的按键。

正如你的html黑客已经理解的那样,这与对话框和angularjs无关,这是一个html表单问题和我缺乏网络技能......

答案 1 :(得分:1)

我认为这是因为您的“关闭”按钮未设置为type =“ button”,并且我认为这是第一个具有焦点的元素,因此在按Enter键时,您正在输入该按钮,默认情况下,提交表格。添加type =“ button”即可解决。

为了便于记录,最新版本的角材还默认为md-button自动添加type =“ button”(除非您指定type =“ submit”)以避免这种情况