Restrict text entry to float + 2pd

http://stackoverflow.com/questions/23221557/restrict-to-2-decimal-places-in-keypress-of-a-text-box

by moob

HTML

<!-- 
For:
http://stackoverflow.com/questions/23221557/restrict-to-2-decimal-places-in-keypress-of-a-text-box -->
<input id="aninput" type="text" placeholder="0.00" onkeypress="return validateDoubleKeyPress(this,event);" />

JavaScript

function validateDoubleKeyPress(el, evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode;
    var number = el.value.split('.');
    if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    //get the carat position
    var caratPos = getSelectionStart(el);
    var dotPos = el.value.indexOf(".");
    if( caratPos > dotPos && dotPos>-1 && (number[1].length > 1)){
        return false;
    }    
    return true;
}

//thanks: http://javascript.nwbox.com/cursor_position/
function getSelectionStart(o) {
	if (o.createTextRange) {
		var r = document.selection.createRange().duplicate()
		r.moveEnd('character', o.value.length)
		if (r.text == '') return o.value.length
		return o.value.lastIndexOf(r.text)
	} else return o.selectionStart
}