Есть поле input type="number"
и кнопка при нажатию на которую данные с инпута, которые обрабатывает php, уходят в бд. нужно сделать следующее: чтобы при вводе с клавиатуры знака - он не учитывался при обработке скриптом после нажатия на кнопку. т.е. если пользователь ввел знак - первым символом, а потом цифры, то этот - должен игнорироваться. иначе баланс пользователя не уменьшается, а наоборот увеличивается
Вопрос: как это реализовать?
Пробовал некоторые варианты решений с гугла, но результата 0 или я что то не так делаю. HTML:
<input type="number" name="creditoff">
<button id="repaycredit" name="repaycredit" class="btn">погасить кредит</button>
PHP:
if (isset($_POST['repaycredit']) && $us_bal >= $creditoff) {
$stmt = $pdo->prepare("UPDATE users SET
balance = balance - :balcredit,
credit = credit - :credit,
status_credit = '1'
WHERE id = :id");
$stmt->bindParam(':id', $us_id, PDO::PARAM_INT);
$stmt->bindParam(':balcredit', $creditoff, PDO::PARAM_INT);
$stmt->bindParam(':credit', $creditoff, PDO::PARAM_INT);
$stmt->execute();
}
Если на js, то можно так:
FU.onkeydown = function (e) {
var s = e.keyCode;
return (s > 47 && s < 58) || (s > 95 && s < 105) || (s > 32 && s < 41) || s == 8 || s == 46;
}
<input type='text' id="FU"/>
Если хотите на jquery, то так :
$('input').on('keydown', function(e){
if(e.key.length == 1 && e.key.match(/[^0-9'".]/)){
return false;
};
})
$("#FU").bind("contextmenu", function(e) {
e.preventDefault();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="FU"/>
Оба варианта с защитой от вставки данных из буфера.
ваш js запрет могут легко переделать и написать любой тип. вам нужно ставить проверку на php . и самый простой вариант это типизация переменной. например: $num = (int)$_POST['mynumber'];
Лучше использовать событие oninput
.
let input = document.body.children[0];
input.oninput = function() {
this.value = this.value.replace(/[^0-9]/g, '');
};
<input type="text">
так все будет работать
if (isset($_POST['repaycredit']) && $us_bal >= $creditoff) {
if ($creditoff < 0) {
echo "...";
}
else {
$stmt = $pdo->prepare("UPDATE users SET
balance = balance - :balcredit,
credit = credit - :credit,
status_credit = '1'
WHERE id = :id");
$stmt->bindParam(':id', $us_id, PDO::PARAM_INT);
$stmt->bindParam(':balcredit', $creditoff, PDO::PARAM_INT);
$stmt->bindParam(':credit', $creditoff, PDO::PARAM_INT);
$stmt->execute();
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
У меня дана таблица и ссылка, при нажатии на ссылку к таблице добавляется строкаКак к добавляющимся элементам дать класс?
) Почему только у обьекта, созданного через конструктор есть контекст? Какие концептуальные разницы между объектом, созданным через =, и обьектом,...
Обидно что все работало, но я игрался с камерой и физикой и теперь не работаетВот картинки моих нынешних настроек