(function ($) {
$.fn.inputFilter = function (inputFilter) {
return this.on('input keydown keyup mousedown mouseup select contextmenu drop', function () {
if (inputFilter(this.value)) {
this.oldValue = this.value;
this.oldSelectionStart = this.selectionStart;
this.oldSelectionEnd = this.selectionEnd;
} else if (this.hasOwnProperty('oldValue')) {
this.value = this.oldValue;
//this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd);
} else {
this.value = '';
}
});
};
})(jQuery);
$('.positive_int').inputFilter(function (value) {
return /^\d*[.]?\d{0,2}$/.test(value);
});
Der obige Code funktioniert einwandfrei für alle !!! Und es wird auch verhindern, dass mehr als 2 Dezimalstellen eingefügt werden. Und wenn Sie das nicht benötigen, entfernen Sie einfach\d{0,2} oder wenn Sie eine stärker begrenzte Dezimalstelle benötigen, ändern Sie einfach die Zahl 2