Live Number Inputs

How to set live inputs for numbers to avoid MySQL errors when the data types are integers or even decimals

When using live inputs we need to have the following option types on our section: L ,

When using number fields it is important to set inputType as "number" and add a few attributes, like step and min. Step allows decimals, in the following example 2 decimals, one decimal at a time. 

For Decimals

addField([
   'type'=>'live',  //required
   'inputType' =>'number', //required
   'label'=>'Amount', //required
   'name' => 'cost', //required (column name)
   'attributes'=> 'min="0" step=".01"', //this allows 2 decimals (9.99)
   'value' => '' //optional, it can be left empty or add the value from the database
   'ID'=>'amount_to_pay', //optional, name is used by default
   'encdata'=>[  //optional unless $dbtable, $idfield and $idvalue are not declared, 
      'TYPE'    =>'LIVE',
      'DBTABLE' =>$dbtable,
      'IDFIELD' =>$idfield,
      'IDVALUE' =>$idvalue
   ],
   callback => 'location.reload()' //optional
]);

 

For Integers:
If we only want to allow integers step should be equal to 1 and to prevent decimals add the following JS to the attributes: onkeypress="return event.charCode >= 48 && event.charCode <= 57"

 
addField([
   'type'=>'live',  //required
   'inputType' =>'number', //required
   'label'=>'Amount', //required
   'name' => 'cost', //required (column name)
   'attributes'=> 'min="0" step="1" onkeypress="return event.charCode >= 48 && event.charCode <= 57"', //this doesn't allow decimals
   'value' => '' //optional, it can be left empty or add the value from the database
   'ID'=>'amount_to_pay', //optional, name is used by default
   'encdata'=>[  //optional unless $dbtable, $idfield and $idvalue are not declared, 
      'TYPE'    =>'LIVE',
      'DBTABLE' =>$dbtable,
      'IDFIELD' =>$idfield,
      'IDVALUE' =>$idvalue
   ]
]);