形式的Angular onsubmit

Zam*_*ezi 2 forms angularjs

我需要onsubmit表单上的属性的功能- 即当我调用此onsubmit函数时,它必须返回truthy以便表单发布.但是我想通过角度函数调用来执行此操作,其方式如下:

<form id="form-submit-canvas" autocomplete="on" enctype="multipart/form-data" accept-charset="UTF-8" method="POST" onsubmit="{{FormSubmit.validate()}}" action="{{FormSubmit.SUBMIT_URL}}" novalidate>
Run Code Online (Sandbox Code Playgroud)

但是,上面给出了关于使用插值的错误onsubmit.我尝试放入ng-submit并且它不起作用,因为action我设置的属性被覆盖.

Pet*_*vic 6

不确定它是否仍然适用于你,但我一直在与类似的问题作斗争.

以下回答让我走上正轨:https://stackoverflow.com/a/17769240/1581069

所以,总结一下所需的步骤:

  1. 你应该在你的电话中调用纯javascript(无角度的)onsubmit(请注意:如果你返回false那里=>表格将不会被提交):

    <form id="form-submit-canvas" ... name="fooForm" onsubmit="return externalValidate();" ...
    
    Run Code Online (Sandbox Code Playgroud)
  2. 并实现将方法移交给角度,如:

    function externalValidate(){
      return angular.element($("#form-submit-canvas")).scope().validate();
    }
    
    Run Code Online (Sandbox Code Playgroud)
    • 您的validate()方法应该只是您之前提到的方法(在角度控制器中实现).
    • 并且externalValidate()应该在任何角度特定组件之外实现.
  3. 此外,请确保从validate()方法中返回正确的结果(以防止表单提交).也许是这样的:

    $scope.validate = function () {
      // TODO implement whatever magic you need prior to submission
    
      return $scope.fooForm.$valid;
    }
    
    Run Code Online (Sandbox Code Playgroud)