当前位置: 首页 > 面试题库 >

如果稍后更改值,则最小/最大验证不起作用

姬康平
2023-03-14
问题内容

我有一个字段的最小值取决于另一字段中给定的输入的要求。

<input type="number" name="minval" class="form-control" ng-model="user.minval" 
      ng-required="true">

此输入用于验证另一个字段

<input type="number" name="inputval" class="form-control" ng-model="user.inputval" 
     ng-required="true" min="{{user.minval}}">

但这不能按预期工作..如果我以后更改“ minval”,则输入不会得到重新验证。

我已经尝试根据一些解决方案中的建议从JS设置min的初始值,但这也无济于事…

链接器


问题答案:

使用ng-min / ng-max指令

app.directive('ngMin', function() {
    return {
        restrict: 'A',
        require: 'ngModel',
        link: function(scope, elem, attr, ctrl) {
            scope.$watch(attr.ngMin, function(){
                if (ctrl.$isDirty) ctrl.$setViewValue(ctrl.$viewValue);
            });

            var isEmpty = function (value) {
               return angular.isUndefined(value) || value === "" || value === null;
            }

            var minValidator = function(value) {
              var min = scope.$eval(attr.ngMin) || 0;
              if (!isEmpty(value) && value < min) {
                ctrl.$setValidity('ngMin', false);
                return undefined;
              } else {
                ctrl.$setValidity('ngMin', true);
                return value;
              }
            };

            ctrl.$parsers.push(minValidator);
            ctrl.$formatters.push(minValidator);
        }
    };
});

app.directive('ngMax', function() {
    return {
        restrict: 'A',
        require: 'ngModel',
        link: function(scope, elem, attr, ctrl) {
            scope.$watch(attr.ngMax, function(){
                if (ctrl.$isDirty) ctrl.$setViewValue(ctrl.$viewValue);
            });
            var maxValidator = function(value) {
              var max = scope.$eval(attr.ngMax) || Infinity;
              if (!isEmpty(value) && value > max) {
                ctrl.$setValidity('ngMax', false);
                return undefined;
              } else {
                ctrl.$setValidity('ngMax', true);
                return value;
              }
            };

            ctrl.$parsers.push(maxValidator);
            ctrl.$formatters.push(maxValidator);
        }
    };
});


 类似资料:
  • 我找到了更改无效值的错误消息的答案。如何更改或删除HTML5表单验证默认错误消息?。 我需要为小于最小值和大于最大值的值显示不同的消息。 如果用户输入-1,它应该说“请输入正值”。 如果用户输入20,则应显示“值不能超过10”。

  • 我有一个WordPress网络站点(目前只有一个页面)。最大的问题是,WordPress中媒体的最大上传大小限制为1MB。 我增加这一限制的任何尝试都没有成功。 到目前为止,我所尝试的: 增加upload_max_filesize和post_max_size 服务器重新加载php。ini在特定时间段内自动生成。通过运行phpinfo(),php确认了该更改。 WordPress插件(Revo Sl

  • 问题内容: 我需要帮助,因为我的脑细胞无法找到此程序的问题!这是代码 该程序执行注释中的操作,但是即使我不输入最小值,最小值也始终为零…我无法弄清楚问题出在哪里,因此,感谢您的帮助! 问题答案: 您初始化数组。然后给出默认值(每个int初始化为0) 它将是0 因此,如果您输入正整数,则找不到小于零的东西 解决方案 首先用用户输入填充数组,然后执行 或使用Integer.MIN_VALUE。

  • 问题内容: 我有一个无法访问的PC上托管的网站。我有一个上传表单,允许人们上传最大30MB的mp3文件。我的服务器端脚本是用PHP完成的。 每次尝试上传文件时,都会收到一条错误消息,声称文件超出了允许的最大大小,因此我需要增加大小。我在网络上的研究建议更改我无权访问的文件,这样将无法正常工作。其他人建议我将自定义文件添加到我的根目录中,该文件无效。还有其他建议吗? 问题答案: 您需要设置的值,并在

  • 控制器文件只是调用服务方法。 服务类别: 我想密码是在行中散列后验证的: 如何在散列和保存之前验证此密码? 如有任何帮助,不胜感激。提前谢了。

  • 问题内容: 我想知道是否有某种方法可以使用CSS更改列表中的最后一个CSS属性。我已经研究过使用,但是这似乎确实有问题,因此无法为我工作。如有必要,我将使用JavaScript进行此操作,但是我想知道是否有人可以考虑使用CSS解决方案。 问题答案: 确实是不修改HTML的唯一方法-但假设您可以这样做,主要的选择就是给它一个,然后执行: 显然,您可以使用您选择的动态页面生成语言来自动执行此操作。另外