客户端范围动态验证

client side range validation dynamically

本文关键字:验证 动态 范围 客户端      更新时间:2023-09-26

我有一个字段"Width",我只知道在运行时允许的范围。

我如何添加客户端验证以允许范围之间。

我可以传递最大和最小的隐藏字段,如果需要吗?

我应该使用jquery添加这些属性到输入字段?: data-val-range-min="1" data-val-range-max="10" data-val-range="message"

(我也在使用fluentvalidation框架)

我看到你正在使用JQuery(标签),所以你可以做如下验证:

工作示例见:http://jsfiddle.net/f9KS3/

$(function() {
    $('input').each(function() {
        var $me = $(this);
        var min = $me.attr('data-val-range-min');
        var max = $me.attr('data-val-range-max');
        var message = $me.attr('data-val-range');
        $me.blur(function() {
            var val = parseInt($me.val());
            if(!$.isNumeric(val) || val < min || val > max) {
                alert('Error (' + message + ')! Field value must be numeric and between ' + min + ' and ' + max);
            }
        });
    });
});

如果你想在运行时改变范围,那么只需将min, maxmessage变量移动到blur函数中,并使用JQuery f.e.更改data-val-*属性,验证将如你所期望的那样工作

你需要的是使用属性

data-val-range = "message"
data-val-range-max = maxValue
data-val-range-min = minValue

如果你想改变范围,在你的脚本中这样做:

      $("#" + paramID).attr('data-val-range-max', max)
      $("#" + paramID).attr('data-val-range-min', min)
      $.validator.unobtrusive.parse(document); <--------

"<----"这允许您动态应用新值

验证。