如何在主干形式的整数文本字段上定义最小/最大验证
How to define min/max validation on a backbone-form integer text field?
给定以下主干表单架构片段:
number_of_products: {
type: "Text",
title: "Number of products",
validators: ["required", "integer"]
},
我将如何定义验证器属性以将输入限制为 13
和 42
之间的值?
首先,
您可以将type
更改为Number
,然后添加一个验证函数:
function validateNumber(min, max) {
return function(val) {
if (val < min || val > max) {
return {
type: 'invalid number',
message: 'Must be between '+min+' and '+max+'.'
};
}
};
}
...
number_of_products: {
type: "Number",
title: "Number of products",
validators: ["required", validateNumber(13, 42)]
}
我认为创建一个验证器更可重用:
// interval validator
BackBoneForms.validators.interval = function(options) {
// get the min value
var minValue = parseFloat(options.min) || 0;
var maxValue = parseFloat(options.max) || 0;
var err = {
type: options.type,
message: "value must between "+minValue+" and "+maxValue
};
return function interval(value, attrs) {
var fieldValue = 0;
if (value === null || value === undefined || value === '') return err;
// check if the value is number
if( !isNaN(parseFloat(value)) && isFinite(value)) {
fieldValue = parseFloat(value);
}
if( minValue > fieldValue || maxValue < fieldValue ) {
return err;
}
return ;
}
}
您可以将其用作:
number_of_products: {
type: "Number",
title: "Number of products",
validators: ["required", {
type : "interval" ,
max : 10,
min : 0
}]
}
相关文章:
- 在wordpress一定时间后更改自定义字段
- Meteor-添加用户自定义字段的方法不起作用
- 微笑时间轴小部件添加自定义字段
- 使用具有用户定义字段的新请求者创建新的Zendesk票证
- WooCommerce-根据自定义字段添加费用
- 有了字段的名称,我如何用空白数据初始化对象的未定义字段
- 高级自定义字段按单选按钮值排序
- 从自定义DocuSign按钮添加信封自定义字段
- 如何使用inlineformset_factory添加自定义字段属性
- jQuery将地理补全输出到自定义字段
- 如何在自定义帖子类型中添加自定义字段
- 根据课程自定义字段在课程页面上添加链接
- 在Extjs中,获取自定义字段容器中的textfield值
- 同步读取package.json中的自定义字段
- 如何将自定义字段添加到Json结果-ASP.NET MVC
- 由 Bootstrap 3 中的高级自定义字段生成的 Google 地图
- 如何将自定义字段添加到 dhtmlxScheduler
- 我可以使用参数来定义字段名称吗?
- 如何使用Visual Force和Javascript在Salesforce中的自定义对象中获取自定义字段值
- 角度过滤器分组依据过滤器返回一个“未定义”字段