0
考慮下面的骨幹,形成模式片段:如何定義主幹整數文本字段上的最小/最大驗證?
number_of_products: {
type: "Text",
title: "Number of products",
validators: ["required", "integer"]
},
我如何定義驗證屬性13
和42
之間限制輸入值?
考慮下面的骨幹,形成模式片段:如何定義主幹整數文本字段上的最小/最大驗證?
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)]
}
我想創建一個驗證器更reutilisable:
// 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
}]
}
Thx!我可以在文檔的某個地方找到它嗎?如果可以命名,請添加一個鏈接。 – JJD
您知道我是否可以限制數字字段,以便在用戶單擊箭頭按鈕時停止在限制範圍內? – JJD
你是否有機會將'min'和'max'傳遞給該函數,以便我可以將其重複用於其他'Number'字段? – JJD