【问题标题】:Angular/Bootstrap ui modal dialog with a form issue带有表单问题的 Angular/Bootstrap ui 模式对话框
【发布时间】:2014-05-27 14:09:03
【问题描述】:

我有一个 Angular JS 应用程序,它带有一个引导 ui 模式对话框,托管一个简单的编辑表单。 该表单可以用于新的“事物”或填充的“事物”。 我发现当我取消填充表单的模式时,正在调用提交。 任何帮助表示赞赏。 戳这里...http://plnkr.co/edit/XhQCqlGUfcmQOhqLDeXR?p=preview

【问题讨论】:

    标签: angular-ui-bootstrap


    【解决方案1】:

    我分叉了你的 plunk 并让它在这里工作:http://plnkr.co/edit/jgg5pDQOH46XgrbW3Mvh?p=preview 我认为取消按钮正在参与表单提交事件,因为它位于表单元素内。将它移到表单之外似乎已经解决了这个问题。我还设置了提交事件来触发 modalInstance 关闭事件和取消事件来触发 modalInstance 关闭事件。这使您有机会在父控制器 (ModalDemoCtrl) 中适当地处理事情。

    编辑

    您还可以在取消事件中停止单击事件的传播,并且仍然使用保存作为表单标签内的输入元素。例如看这个plunk:http://plnkr.co/edit/A81KkUUQEL3IBbOSnHQb?p=preview

    【讨论】:

    • 嗨。感谢您对此作出回应。我已经走上了使提交成为按钮而不是输入的路线。然而,这绕过了表单标签验证,这对于这个用例来说是可以的,但对于更复杂的表单则不行。
    【解决方案2】:

    我遇到了类似的问题。我的问题是,当我单击按钮打开模式时,我的表单已提交。我使用的是“按钮”html标签,没有指定“类型”属性。所以,我发现了你的问题,我去了 W3C 文档。我发现:

    提示:始终为按钮元素指定类型属性。不同的浏览器对按钮元素使用不同的默认类型。 (http://www.w3schools.com/tags/tag_button.asp)

    我没有定义按钮的类型,所以浏览器的默认类型是提交。我将类型定义为“按钮”,现在一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多