未定义的表单传递给Modal中的ng-submit(UI Bootstrap)

时间:2016-07-31 19:04:01

标签: angularjs validation modal-dialog angular-ui-bootstrap bootstrap-modal

我正在尝试实施modal验证。我正在使用controller as modal语法。关闭和提交功能正在按预期工作。不幸的是验证没有传递给控制器​​提交函数的loginForm是undefined!由于这个问题,我无法执行用户名输入验证。

<form form="loginForm" class="registerModal"  ng-submit="modal.submit(loginForm)" novalidate> 
    <div class="modal-header">
        <h3 class="modal-title">TITLE</h3>
    </div>
    <div class="modal-body ">
        <div class="row form-horizontal">
            <div class="form-group" >
                <label class="col-sm-4 control-label">Username:<span style="color:red">*</span></label>
                <div class="col-sm-8">
                    <input type="text" class="form-control" name="username" ng-model="modal.user.username" ng-maxlength="3" required>
                </div>
            </div>
            <div  uib-alert class="col-sm-offset-4 alert-danger" ng-show="loginForm.username.$error.required">Error Msg</div> 
    </div>
    </div>
    <div class="modal-footer">
        <button class="btn btn-primary" type="submit" ng-click="modal.showErrors=true">Register</button>
        <button class="btn pull-left" type="button" ng-click="modal.cancel()">Cancel</button>
    </div>
</form>

Controller.js

angular.module('app')
.controller('RegistrationCtrl',['$uibModalInstance', function ($uibModalInstance) {

    var vm = this;
    vm.showErrors = false;

    //Modal
    vm.user = {
       username: 'default'
    };
    */
    /**********Submiting form**********/
    vm.cancel = function () {
        $uibModalInstance.dismiss('cancel');
    };

    vm.submit = function(form){
        console.log('submiting....');
        console.log(form);  //it is undefined
    };

}]);

如果有任何帮助,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

而不是form form="loginForm",它应该是form name="loginForm"

<form name="loginForm" class="registerModal" ng-submit="modal.submit(loginForm)" novalidate>