Подскажите как сделать что бы в input можно было вводить дробные (или целые) числа ( пример: 1.1 | 1.234 | 12 ). Тоесть только цифры или точку (не запятая). Спасибо.
<input type="text" onkeydown="return isNumber(event)">
function isNumber(evt) {
const charCode = evt.keyCode;
const hasDot = evt.target.value.indexOf('.') !== -1 && charCode === 190;
if (charCode != 46 && charCode != 190 && charCode > 31
&& (charCode < 48 || charCode > 57) || hasDot) {
return false;
}
return true;
}
Для форматов, перечисленных в вопросе, можно использовать такое выражение:
^\d+(?:\.\d+)?$
Upd.
Если необходима проверка формата во время ввода, то можно использовать вот такой код:
$("#testField").on("keyup change", function() {
var that = $(this);
var validValue = that.data("validValue") || "";
var newValue = that.val();
if (newValue.match(/^\d+\.?\d*$/)) {
that.data("validValue", that.val());
} else {
that.val(validValue);
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="testField">
Тут используется немного другое регулярное выражение ^\d+\.?\d*$
, которое позволяет значения типа 58.
, но такие значения также являются валидными рациональными числами.
Есть таблица в которой фиксируются все операции связанные с расходамиЕсть расход относится к типу "Аванс", то также необходимо сохранять...
Делаю запрос к таблице, поле которое я упорядочил по возрастанию УПОРЯДОЧИВАЕТСЯ, но тип ячейки текстовый, а внутри цифрыЕст-но логично изменить...
Для удобства я создал dockerfile, который собирает на основе debian образ с mysqlОчень удобно