Hi,
I have a grid colone with a number format and it works fine.
I’ve added a custom eXcells editor that validate the value and if not numeric sets it to 0.
What I’d like to do is prevent any non numerical input by the user in the cell editor. So if you type letters for example they are not accepted by the cell editor. (kind of an input mask)
Do you know any I can do that?
Here’s a sample
function IsNumeric(n)
{
if(n*1==n)
return true;
else
return false;
}
//extended simple editor (with number format support)
//validate that the value is a numeric values else assign 0
function eXcell_edncl(cell){
this.base = eXcell_edn;
this.base(cell)
this.setValue = function(val)
{
if(!val || val.toString()._dhx_trim()=="" || !IsNumeric(val))
val=“0”
this.cell.innerHTML = this.grid._aplNF(val,this.cell._cellIndex);
}
}
eXcell_edncl.prototype = new eXcell_edn;
gridNumeroSerie = new dhtmlXGridObject(‘grid_container’);
gridNumeroSerie = new dhtmlXGridObject(‘grid_container’);
gridNumeroSerie.setHeader(“Num�ro,Qt�e,UM1,Qt�e,UM2”);
gridNumeroSerie.setColTypes(“ro,edncl,ro,edncl,ro”);
gridNumeroSerie.setNumberFormat(“0.000”,1);
gridNumeroSerie.setNumberFormat(“0.000”,3);
gridNumeroSerie.setColSorting(“int,int,str,int,str”);
gridNumeroSerie.init();
Thank you
can be done as
gridNumeroSerie.attachEvent(“onEditCell”,function(stage,id,ind){
if (stage == 1 && ind == 1)
this.editor.obj.onkeypress=function(e){ //editor area
if (some_check((e||event).keyCode) return true;//alloow
return false; //deny
}
return true;
});
For futur reference here’s how I did it.
gridNumeroSerie.attachEvent(“onEditCell”,function(stage,id,ind){
if (stage == 1 && (ind == 1 || ind == 3))
this.editor.obj.onkeypress=function(e)
{ //editor area
var ValidChars = “0123456789.”;
if (ValidChars.indexOf((String.fromCharCode((e||event).keyCode))) == -1)
return false;//allow
else
return true; //deny
}
return true;
});