my angular-validate.js
(function (angular, $) {
angular.module('ngValidate', [])
.directive('ngValidate', function () {
return {
require: 'form',
restrict: 'A',
scope: {
ngValidate: '='
},
link: function (scope, element, attrs, form) {
var validator = element.validate(scope.ngValidate);
form.validate = function (options) {
var oldSettings = validator.settings;
validator.settings = $.extend(true, {}, validator.settings, options);
var valid = validator.form();
validator.settings = oldSettings; // Reset to old settings
return valid;
};
form.numberOfInvalids = function () {
return validator.numberOfInvalids();
};
//BY DK
form.validator = validator;
//BY DK //https://github.com/jpkleemans/angular-validate
}
};
})
.provider('$validator', function () {
$.validator.setDefaults({
onsubmit: false // to prevent validating twice
});
return {
setDefaults: $.validator.setDefaults,
addMethod: $.validator.addMethod,
setDefaultMessages: function (messages) {
angular.extend($.validator.messages, messages);
},
format: $.validator.format,
$get: function () {
return {};
}
};
});
}(angular, jQuery));
我的模块
var adminDashbord = angular
.module('adminDashbord', ['ngValidate']);
我的控制器
adminDashbord.controller('productmasterController', ['$scope', '$rootScope',
function ($scope, $rootScope) {
$scope.init = function () {
}
$scope.productEditvalidation = {
rules: {
productName: { required: true },
bestSeller: { required: true },
}
messages: {
productName: { required: 'Enter Product Name' },
bestSeller: { required: ''Select Any One'' },
}
$scope.updateProduct = function (form) {
if (form.validate()) {
// Form is valid!
alert('valid!');
}
}
}]);
我的Html
<div class="card-body">
<form name="productEdit" ng-submit="updateProduct(productEdit)" ng-validate="productEditvalidation" >
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label">Product Code </label>
<input type="text" name ="productCode" class="form-control" value="{{productCode}}" disabled />
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Best Seller</label>
<br />
<div class="custom-control custom-radio custom-control-inline">
<label class="" for="bestSeller">
<input type="radio" id="" name="bestSeller" value="true" class="" ng-checked ="productbestseller == 'True' "/>Yes
</label>
</div>
<div class="custom-control custom-radio custom-control-inline">
<label class="" for="bestSeller">
<input type="radio" id="" name="bestSeller" value="false" class="t" ng-checked ="productbestseller == 'False'"/>No
</label>
</div>
</div>
</div>
</div>
</form>
</div>
我的问题是,当我点击更新按钮时,它会给我一个错误 form.validate不是函数我使用了 ng-validate指令 ref {{3} } 另外,我使用 Angular js 1.6.9 我的jquery链接是
<script type="text/javascript" src='<%= ResolveUrl("~/assets/node_modules/jquery/jquery-3.3.1.min.js")%>'></script>
<script type="text/javascript" src='<%= ResolveUrl("~/AngularComponents/angularsetup/angular/angular.min.js") %>' </script> eg version 1.6.9
<script type="text/javascript" src='<%=ResolveUrl("~/AngularComponents/angularsetup/angular-validate/angular-validate.js") %>' ></script>
所以为什么要给我这个错误,因为我根据ref更改了我的代码但是它给了我那个错误请帮助我我是角度初学者
答案 0 :(得分:0)
您可以尝试以这种方式定义form.validate函数:
scope.productEdit.validate = function (options) {
var oldSettings = validator.settings;
validator.settings = $.extend(true, {}, validator.settings, options);
var valid = validator.form();
validator.settings = oldSettings; // Reset to old settings
return valid;
};
答案 1 :(得分:0)
您可能应该添加脚本jquery.validate.min.js
以使其正常工作。