【发布时间】:2014-05-27 14:09:03
【问题描述】:
我有一个 Angular JS 应用程序,它带有一个引导 ui 模式对话框,托管一个简单的编辑表单。 该表单可以用于新的“事物”或填充的“事物”。 我发现当我取消填充表单的模式时,正在调用提交。 任何帮助表示赞赏。 戳这里...http://plnkr.co/edit/XhQCqlGUfcmQOhqLDeXR?p=preview
【问题讨论】:
我有一个 Angular JS 应用程序,它带有一个引导 ui 模式对话框,托管一个简单的编辑表单。 该表单可以用于新的“事物”或填充的“事物”。 我发现当我取消填充表单的模式时,正在调用提交。 任何帮助表示赞赏。 戳这里...http://plnkr.co/edit/XhQCqlGUfcmQOhqLDeXR?p=preview
【问题讨论】:
我分叉了你的 plunk 并让它在这里工作:http://plnkr.co/edit/jgg5pDQOH46XgrbW3Mvh?p=preview 我认为取消按钮正在参与表单提交事件,因为它位于表单元素内。将它移到表单之外似乎已经解决了这个问题。我还设置了提交事件来触发 modalInstance 关闭事件和取消事件来触发 modalInstance 关闭事件。这使您有机会在父控制器 (ModalDemoCtrl) 中适当地处理事情。
编辑
您还可以在取消事件中停止单击事件的传播,并且仍然使用保存作为表单标签内的输入元素。例如看这个plunk:http://plnkr.co/edit/A81KkUUQEL3IBbOSnHQb?p=preview
【讨论】:
我遇到了类似的问题。我的问题是,当我单击按钮打开模式时,我的表单已提交。我使用的是“按钮”html标签,没有指定“类型”属性。所以,我发现了你的问题,我去了 W3C 文档。我发现:
提示:始终为按钮元素指定类型属性。不同的浏览器对按钮元素使用不同的默认类型。 (http://www.w3schools.com/tags/tag_button.asp)
我没有定义按钮的类型,所以浏览器的默认类型是提交。我将类型定义为“按钮”,现在一切正常。
【讨论】: