Я трохи поборовся з цим. Багато рішень тут і деінде здавалися складними. Це рішення використовує jQuery / javascript поряд із HTML.
<input type="number" min="1" class="validateNumber">
$(document).on('change', '.validateNumber', function() {
var abc = parseInt($(this).val());
if(isNaN(abc)) { abc = 1; }
$(this).val(abc);
});
У моєму випадку я відстежував невеликі кількості з мінімальним значенням 1, отже, min = "1" у вхідному тезі, а abc = 1 у перевірці isNaN (). Для лише позитивних чисел ви можете змінити ці значення на 0 і навіть просто видалити min = "1" з вхідного тегу, щоб дозволити негативні числа.
Крім того, це працює для декількох ящиків (і може заощадити певний час завантаження, виконуючи їх окремо за id), просто додайте клас "validateNumber", де потрібно.
Пояснення
parseInt () в основному робить те, що вам потрібно, за винятком того, що він повертає NaN, а не якесь ціле значення. За допомогою простого if () ви можете встановити "запасне" значення, яке ви віддаєте перевагу у всіх випадках, повертається NaN :-). Також W3 йдеться тут , що глобальна версія NaN буде приведення типу перед перевіркою , що дає деякі додаткові коректури (Number.isNaN () не робить цього). Будь-які значення, надіслані на сервер / бекенд, все одно повинні бути підтверджені там!