バリデーターの作成はより再利用可能だと思います:
// 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
}]
}