我可以在运行时更改数字验证的最小值,最大值吗?
我简化的布局和结构,以演示它应该如何工作。当我更改最大范围的值时,必须更改最大范围的字段编号验证。
的jsfiddle: http://jsfiddle.net/nXqd/qC2Ya/3/
由于
答案 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/
您可以通过在验证规则中指定min
和max
选项来执行此操作:
例如:
$("#myform").validate({
rules: {
field: {
required: true,
min: 13
}
}
});
API文档: