Хорошо, я получил это, вроде как у вас есть веб-сайт, на котором вы можете обменять баллы, теперь, когда я нажимаю кнопку «Погасить», я не хочу, чтобы приведенное число было меньше 4 баллов и чтобы указанное число превышало ваш баланс баллов ,
Теперь, когда я нажимаю кнопку, когда на входе 2, я получаю 2 оповещения (оповещения для тестирования)
Но, как только я нажимаю кнопку, когда я ставлю число меньше, чем мой баланс, я также получаю 2 оповещения, например, number = (например) 7 и balancehidden = 100. Поэтому я не понимаю, почему я получаю эти оповещения. потому что его меньше, чем баланс и больше, чем 4.
также это поле баланса сохраняется при вызове refreshBalance ():
<input type=hidden id="balancehidden" name="balancehide"value=""/>
Javascript:
<input type="text" id="number"><br>
<button type="button" class="btn btn-success" id="redeem">Redeem</button>
<body onload="refreshBalance()">
<script type="text/javascript">
document.getElementById('redeem').onclick = function() {
if(document.getElementById('number').value < 4 || document.getElementById('number').value > document.getElementById("balancehidden").value)
{alert(document.getElementById("number").value);
alert(document.getElementById("balancehidden").value);
}
}
</script>
Вы пытаетесь понять, больше ли одна строка, чем другая, но вы действительно хотите сравнить числа.
парадоксально, "4" > "100" === true
в то время как 4 > 100 === false
,
Преобразуйте ваши значения в числа:
if(parseInt(document.getElementById('number').value) < 4 || parseInt(document.getElementById('number').value) > parseInt(document.getElementById("balancehidden").value))
использование parseFloat
вместо parseInt
если вы ожидаете десятичные дроби, и знать о основной параметр.
Проблема в том, что вы пытаетесь сравнивать строковые значения вместо целых.
Пожалуйста, проверьте этот jsfiddle с рабочим кодом: https://jsfiddle.net/2kbcuhg9/
document.getElementById('redeem').onclick = function() {
var number = parseInt(document.getElementById('number').value);
var balance = parseInt(document.getElementById('balancehidden').value);
if(number < 4 || number > balance) {
alert(document.getElementById("number").value);
alert(document.getElementById("balancehidden").value);
}
}