在我看来,在AngularJS中处理对话框中的Enter键的推荐方法是在对话框中放置一个标记和一个提交按钮。
这很合理,但是如果您使用Angular-UI和他们的$dialog服务,当按enter键时,表单将静默关闭。没有办法截获它。即使您将处理程序附加到ng-click或ng-submit,表单也只会关闭,而不返回任何结果。
还有什么我需要做的吗?
编辑
解决了这个问题,我必须明确指定我的“取消”按钮是“按钮”类型。看起来默认是“提交”吗?
因此,除了我的html表单技能之外,没有什么真正的问题:)
发布于 2013-08-22 21:06:45
来回答我自己的问题。按钮似乎默认为提交(?)如果我显式地将它们设置为type=“按钮”,那么当在表单输入字段中按enter时,它们将不会触发回发。
<form>
<input type="text" ... />
<button type="button" ng-click=...>Cancel</button>
<button type="submit" ng-click=...>OK</button>
</form>
这样,在输入字段中按enter键将触发OK按钮的ng-click。
正如你们html黑客已经理解的那样,这与对话框或angularjs无关,这是一个html表单问题和我缺乏web技能……
发布于 2019-06-06 14:23:43
我相信这是因为您的"CLOSE“按钮没有设置为type=" button ",我认为这是第一个具有焦点的元素,因此当按enter时,您将输入该按钮,默认情况下,该按钮将提交表单。添加按钮“type=”就可以解决这个问题了。
同样为了记录,最新版本的angular material默认有md-type=自动添加按钮“type=”(除非你指定“提交”),以避免这种情况。
https://stackoverflow.com/questions/17551220
复制相似问题