Я подумал, что лучшим ответом будет тот, что выше, просто сделать это.
jQuery('.numbersOnly').keyup(function () {
this.value = this.value.replace(/[^0-9\.]/g,'');
});
но я согласен, что немного неприятно, что клавиши со стрелками и кнопка удаления привязывают курсор к концу строки (и из-за этого он был возвращен мне в тесте)
Я добавил в простом изменении
$('.numbersOnly').keyup(function () {
if (this.value != this.value.replace(/[^0-9\.]/g, '')) {
this.value = this.value.replace(/[^0-9\.]/g, '');
}
});
таким образом, если есть какое-либо нажатие кнопки, которое не приведет к изменению текста, просто проигнорируйте его. При этом вы можете нажимать стрелки и удалять, не переходя в конец, но это удаляет любой нечисловой текст.