Free jqgrid column is defined to use html5 number input type like
{ name: "amount", width: 62, template: "number",
formatter: "number", formatoptions: {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 4, defaultValue: '0.0000'},
editoptions: {
maxlength; 4
type: "number",
max: 9999
} },
It allows to enter numbers from keyboard greater than 9999.
max: 9999
affects only to entry using spinner.
How to fix this so that keyboard entry cannot exceed 9999 ?
testcase is at
http://jsfiddle.net/jhckz7rr/3/
It allows to manually enter numbers greater that 9999 into Amount column. How to restrict manual entry to 9999 ?
I tried also to use string max value max: '9999'
but problem persists.
If input type is text, input respects maxlength value.
Try to use something like the following
The above code calls
checkValidity()
method of<input type="number">
. Of cause you need to include additional tests in the code like validation thate.target.checkValidity
is a function (for the case of executing in old web browser) and some other. The above code just shows the main idea of validation which uses functionality of<input type="number">
.See the demo http://jsfiddle.net/OlegKi/jhckz7rr/8/, which works for both inline editing and form editing.
Create validation on input with jQuery.
Event listeners are attached on edit click, and removed on save click. I used setTimeout, to be synchronized with free-jqgrid elements manipulation - as the proper solution will be to extend free-jqgrid functionality
http://jsfiddle.net/jhckz7rr/6/