0

我有一个通过 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 并发布到相关端点,但这需要重写一个真正淫秽的代码量。

因此我的问题是:

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

谢谢!

4

1 回答 1

0

我的解决方案:

  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 之后

于 2013-01-10T10:33:36.873 回答