jQuery验证 - 在运行时更改最小最大数量检查

时间:2012-09-18 12:14:55

标签: jquery validation

我可以在运行时更改数字验证的最小值,最大值吗?

我使用jQuery validation plugin

我简化的布局和结构,以演示它应该如何工作。当我更改最大范围的值时,必须更改最大范围的字段编号验证。

的jsfiddle: http://jsfiddle.net/nXqd/qC2Ya/3/

由于

2 个答案:

答案 0 :(得分:6)

使用其他SO帖子中的answer作为指南,我可以更改您的代码并使其正常工作。

// Bind initial rule;
bindRangeRule(1, 2);

$("input[name='change-range']").on("keyup", function() {
    var value = $(this).val();

    // add some validation here off course to ensure only numbers are accepted.
    // You can do that by checking the event.keyCode values I believe.
    // If an invalid value was specified you can throw an alert
    // or simply clear the input field and return false. Or similar.

    // re-bind range rule
    bindRangeRule(1, parseInt(value));
});

function bindRangeRule(from, to) {
    var settings = $('form').validate().settings;

    delete settings.rules.number;

    settings.rules.number = {
        required: true,
        range: [from, to]
    }
};

答案 1 :(得分:3)

更新了演示: http://jsfiddle.net/techfoobar/qC2Ya/5/


您可以通过在验证规则中指定minmax选项来执行此操作:

例如:

$("#myform").validate({
  rules: {
    field: {
      required: true,
      min: 13
    }
  }
});

API文档

http://docs.jquery.com/Plugins/Validation/Methods/min#value

http://docs.jquery.com/Plugins/Validation/Methods/max#value