【问题标题】:angular form validation not working角度表单验证不起作用
【发布时间】:2015-06-17 17:39:37
【问题描述】:

我有一个简单的表单,其中包含一个必需的文本框和一个保存按钮。

<form role="form" name="frmVariableConfig" novalidate ng-submit="frmVariableConfig.$valid && vm.saveChanges()">                
    <input type="text" ng-model="vm.CurrCustomer.Name" name="txtCustomerName" class="form-control input-sm validate[required]" placeholder="txtCustomerName" check-validation>   
    <button type="submit" class="btn btn-sm text-right">Save</button>                
</form>

我正在使用这个指令来激活 Jquery 验证引擎

angular.module('app').directive('checkValidation', [
    function () {
        return {
            restrict: 'A',
            require: '?ngModel',
            link: function (scope, element, attrs, ngModel) {
                element.closest('form').validationEngine(
                    {
                        promptPosition: 'centerRight',
                        scroll: true, prettySelect: true,
                        autoPositionUpdate: true,
                        //validateNonVisibleFields: true,
                        //autoHidePrompt: true,
                        autoHideDelay: 1000,
                        fadeDuration: 0.9
                    }
                );
            }
        };
    }]);

但即使文本框为空,它也会继续调用 saveChanges()。如果文本框为空,则不应调用此函数。

请帮忙。

【问题讨论】:

  • 你考虑过使用Angular Validation吗?
  • 放弃了,现在使用角度验证 :) 我的下拉菜单是一个引导选择,其中包含一些需要验证的隐藏内容。所以现在行为很好,但我得到一个 name=xxx 的无效表单控件不可聚焦。”保存时出错。
  • 实际上与这个问题无关。但其余的东西都在工作。除了这个。

标签: javascript jquery angularjs angularjs-directive jquery-validation-engine


【解决方案1】:

在一个项目中,我发现解决这种情况的唯一方法是将 $valid 的值传递给 save 方法。

HTML

ng-submit="vm.saveChanges( frmVariableConfig.$valid )"

JS

$scope.saveChanges = function(valid) {  
  if(valid) {
    //do save  
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 2020-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多