【问题标题】:AngularJS form.validation is not a FunctionAngularJS form.validation 不是一个函数
【发布时间】:2018-06-27 13:47:46
【问题描述】:

AddClass.cshtml 文件具有表单并且 ng-validate 使用验证选项。当我单击 cshtml 文件中的添加类按钮而不在文本框中输入任何值时,它应该显示错误消息,但我得到 form.validation() 不是函数错误。所有 js 文件都已经存在,例如 angular-validate.min 和 jquery.validate.min。知道可能是什么问题吗??

<form name="addclassform" id="addclassform" ng-submit="addClassForm(addclassform)" ng-validate="classValidationOptions">
    <div class="modal-body">
        <div class="form-group">
            <label for="ClassName" class="col-md-3">Class Name</label>
            <input name="ClassName" id="ClassName" class="form-control" ng-model="addClassFormData.ClassName" />
        </div>
        <div class="form-group">
            <label for="Location" class="col-md-3">Location</label>
            <input name="Location" id="Location" class="form-control" ng-model="addClassFormData.Location" />
        </div>
        <div class="form-group">
            <label for="TeacherName" class="col-md-3">Teacher Name</label>
            <input name="TeacherName" id="TeacherName" class="form-control" ng-model="addClassFormData.TeacherName" />
        </div>
    </div>
    <div class="modal-footer">
        <button type="submit" class="btn btn-success">Add Class</button>
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
    </div>
</form>

这是 AngularJS 文件。 classValidationOptions 具有所有规则,并且 form.validation() 在 $scope.addClassForm 中抛出错误

//Validate Class
$scope.classValidationOptions = {
    rules: {
        ClassName: { required: true },
        Location: { required: true },
        TeacherName: { required: true }
    },
    messages: {
        ClassName: { required: "Please enter Class Name." },
        Location: { required: "Please enter the Location." },
        TeacherName: { required: "The field is required." }
    }
};

$scope.addClassFormData = {};

//Adds a Class
$scope.addClassForm = function (form) {
    if (form.validate()) {
        $http({
            method: "POST",
            url: "/Home/AddClass",
            data: $.param($scope.addClassFormData),
            headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
        }).then(function Success(response) {
            var data = angular.fromJson(response.data);
            if (data.success) {
                $scope.loadClasses();
                $('#addClass').modal('hide');
                $scope.resetClassForm("add");
                //toastr.success(data.msg, 'Success');
            }
            else {
                //toastr.error(data.msg, 'Error');
            }
        });
    }
};

enter image description here

【问题讨论】:

    标签: angularjs angularjs-scope angularjs-http


    【解决方案1】:

    我发现了错误。问题是我没有在模块中写ngValidate

    代码不正确

    var app = angular.module('myApp', []);
    

    正确的代码

    var app = angular.module('myApp', ['ngValidate']);
    

    【讨论】:

      猜你喜欢
      • 2014-08-08
      • 2015-09-12
      • 2016-05-21
      • 2015-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-08
      • 2016-07-12
      相关资源
      最近更新 更多