【问题标题】:Prevent rails form submission on ng-invalid防止在 ng-invalid 上提交 Rails 表单
【发布时间】:2013-01-10 08:45:58
【问题描述】:

我有一个通过 rails 助手生成的表单,上面有一些 AngularJS。

 = form_for some_models do |f|
      %fieldset.form-horizontal
          %div.some-class
     #And so on and so forth
      =f.submit

等等。 在这种形式中,我有各种相互嵌套的角度指令和控制器。其中一个指令是侦听一个字段并比较其值以进行一些自定义角度验证,如下所示:

    ctrl.$setValidity("decisionRuleCodeActivated", scope.valid).

这会正确设置表单和相关字段上的 ng-invalid/ng-valid,但是表单提交仍然可以正常进行。

虽然我知道阻止这种行为的“正确”方法是引入一个 ngSubmit,它进行验证,然后联系一个 Angular 服务,该服务序列化为 JSON 并发布到相关端点,但这需要重写大量的代码。

所以我的问题:

如果不这样做,如何防止表单提交?

谢谢!

【问题讨论】:

    标签: ruby-on-rails forms coffeescript angularjs haml


    【解决方案1】:

    我的解决方案:

      if scope.valid is true
        angular.element("form.ng-valid").find("input:submit").click(->
          true
        )
      else
        angular.element("form.ng-invalid.ng-dirty").find("input:submit").click(->
          false
        )
    

    上面的代码在一个由手表触发的方法中,就在指令中的 $setValidity 之后

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-20
      相关资源
      最近更新 更多