警告"表单提交已取消,因为表单未连接"在角度

时间:2017-10-07 08:59:36

标签: javascript jquery html forms angular

html代码:

 <form action="{{url}}"> 
            <input type="submit" class="btn btn-info" ng-
click="goToProdPage()" value="Resume">
           </form>

Angular Code:

    $scope.goToProdPage = function(){
    if(id){
        $scope.url = "#/"+id+"/cpq";
    console.log("done   "+id);
    $state.go("cpq");
    } 
}

请忽略id,因为我只放了一半代码。 我已经使用过$(document.body).append(form); 并且它解决了这个问题但是在添加它之后它在控制台上显示出错误

  

angular.js:14362 ReferenceError:未定义表单       at b。$ scope.findUser。$ scope.goToProdPage(login.js:44)       at fn(eval at compile(angular.js:15197),:4:156)       在e(angular.js:26808)       at b。$ eval(angular.js:18017)       at b。$ apply(angular.js:18117)       在HTMLInputElement。 (angular.js:26813)       在dg(angular.js:3617)       在HTMLInputElement.d(angular.js:3605)

2 个答案:

答案 0 :(得分:2)

不是100%肯定你在这里想做什么。但我的意见是你应该使用更多的角度处理形式......

<form ng-submit="mySubmit()">
    <input type="submit" value="Send form">
</form>

现在,您可以在控制器中编写一个处理表单提交的函数。

this.mySubmit = mySubmit;

function mySubmit() {
    // Check here if the url exists
    // ...or what to do when submitting the form...
    // this.goToProdPage();
}

更详细的示例或额外信息可以帮助我更好地理解问题: - )

答案 1 :(得分:1)

首先从按钮中移除类型提交并将id放入表单

<form id="myform" action="{{url}}"> 
   <input type="button" class="btn btn-info" ng-
click="goToProdPage()" value="Resume">
</form>

并在函数goToProdPage()完成所有处理后触发表单提交jquery

$scope.goToProdPage = function(){
    if(id){
       $scope.url = "#/"+id+"/cpq";
       console.log("done   "+id);
       $state.go("cpq");
       $('#myform').submit();
    }
}