var numberValidator = function (value, callback) {
var tmpStr='';
var valueStr = (''+value).replace(/\s/g, '');
for(var i = 0 ; i<valueStr.length; i++){
tmpStr =valueStr.substring(i, i+1);
if( tmpStr == '0' || tmpStr == '1' || tmpStr == '2'
|| tmpStr == '3' || tmpStr == '4' || tmpStr == '5'
|| tmpStr == '6' || tmpStr == '7' || tmpStr == '8'
|| tmpStr == '9' || tmpStr == ',' || tmpStr == '.'){
}else{
callback(false);
break;
}
callback(true);
}
};
var settings = {
data: DataObject,
beforeChange: function (changes, source) {
if(changes != null){
//maxlength
for (i = 0; i < changes.length; i++) {
var row = changes[i][0]; //0 변경셀의 row
var col = changes[i][1]; //1 변경셀의 col
var meta = this.getCellMeta(row, col);
var data = changes[i][3]; //3 변경 데이터
//height change
if(row>8 && _height1<310 && data != null && data != ''){
_height1=500;
tRefriSaleIncome_Handsontable.updateSettings({
height: _height1
});
}
//replace \n
changes[i][3] = (''+data).replace(/\s+/, '')
.replace(/\s+$/g, '')
.replace(/\n/g, '')
.replace(/\r/g, '')
.replace(/(\n|\r\n)/gm, '');
data = changes[i][3];
//maxlength
if(col != null && col =="numberColumn" ){
changes[i][3] = (''+data).replace(/,/g, '');
data = changes[i][3];
if((''+data).length>10){
changes[i][3] = (''+data).substring(0, 10);
}
}
}
}
}
,columns: [
{
data: 'numberColumn',
type: 'numeric',
numericFormat: {
pattern: '0,0.000'
}
, validator : numberValidator
}
]
};