2013-10-29 22 views

回答

2

首先你可以改變typeNumber,然後添加一個驗證功能:

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)] 
} 
+0

Thx!我可以在文檔的某個地方找到它嗎?如果可以命名,請添加一個鏈接。 – JJD

+0

您知道我是否可以限制數字字段,以便在用戶單擊箭頭按鈕時停止在限制範圍內? – JJD

+0

你是否有機會將'min'和'max'傳遞給該函數,以便我可以將其重複用於其他'Number'字段? – JJD

2

我想創建一個驗證器更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 

}] 

}

相關問題