【问题标题】:Angular aside modal window with form. The form is being submitted when i cancel\close the window带有表单的角模式窗口。当我取消\关闭窗口时,表单正在提交
【发布时间】:2017-08-16 04:53:45
【问题描述】:

我正在使用 Angular 来创建一个模态窗口。在模态窗口中有一个带有提交按钮和关闭按钮的表单。

如果我填写表格并提交,然后单击关闭按钮,表格将再次提交。如果我不填写表格而只是单击关闭按钮,则模式窗口将被关闭而没有提交表格。

关于如何在关闭窗口时防止表单提交的任何想法?

这是我的控制器,我有打开模式窗口的方法:

mainApp2.controller("mainAppController", ["$scope", "$aside", "$document", function ($scope, $aside) {
var asideInstance;
$scope.openSidebar = function () {
    asideInstance = $aside.open({
        templateUrl: "/Apps/Modules/ModuleConfigForm/templates/moduleConfigformTemplate.html",
        controller: "moduleConfigformController",
        placement: "left",
        size: "sm",
        backdrop: true
    });
}
}])

这是我的关闭逻辑控制器

mainApp2.controller("moduleConfigformController",
function moduleConfigformController($scope, $http, moduleConfigformService, $uibModalInstance, $filter) {
    $scope.close = function (e) {
        $uibModalInstance.dismiss();
        e.stopPropagation();
    };
....
}

这是我的表格:

<form name="configForm" ng-submit="submitConfigForm()">
        <button ng-disabled: ng-disabled="configForm.$invalid" tabindex="100" class="btn btn-success pull-left" type="submit" ng-class="{'btn-primary':configForm.$valid}">Start</button>
        <button class="btn btn-warning pull-right" ng-click="close()">Close window</button>
</form>

【问题讨论】:

    标签: javascript html angularjs forms


    【解决方案1】:

    使用没有 type 属性的按钮时要小心,因为浏览器会将它们视为表单的默认提交按钮。

    尝试如下图添加type属性到button,防止表单提交

     <button type="button" class="btn btn-warning pull-right" ng-click="close()">Close window</button>
    

    【讨论】:

    • 谢谢詹努。有效。我当然需要这种类型。我没有看到它丢失了。再次感谢:-)
    猜你喜欢
    • 2012-08-14
    • 1970-01-01
    • 2013-09-24
    • 2018-10-31
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    相关资源
    最近更新 更多