[英]Why this false condition returns true?
為什么當我在最后一個輸入 6 而不是 60 上寫並單擊 ob 按鈕時,它返回 true 認為我的條件為 false? 如何解決這個問題呢? 提前致謝!
<!doctype html>
<html>
<head>
</head>
<body>
<button>get
result</button>
<div></div>
<input Class="value1" value=10>
<br>
<br>
<input Class="value2" value=20>
<br>
<br>
<input Class="value3" value=30>
<br>
<br>
<input Class="value4" value=40>
<br>
<br>
<input Class="value5" value=50>
<br>
<br>
<input Class="value6" value=60>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
$('button').click(function() {
var value1 = $(".value1").val();
var value2 = $(".value2").val();
var value3 = $(".value3").val();
var value4 = $(".value4").val();
var value5 = $(".value5").val();
var value6 = $(".value6").val();
if (value1 < value2 && value2 < value3 && value3 < value4 && value4 < value5 && value5 < value6) {
$("div").text("true");
} else {
$("div").text("false");
}
});
</script>
</body>
</html>
您的問題的一個簡單解決方案是將輸入框轉換為“數字”類型,以限制輸入的字符,然后將所有變量轉換為數字。
例如:
<input Class="value3" type="number" value=30>
$('button').click(function() {
var value1 = Number($(".value1").val());
var value2 = Number($(".value2").val());
var value3 = Number($(".value3").val());
var value4 = Number($(".value4").val());
var value5 = Number($(".value5").val());
var value6 = Number($(".value6").val());
});
您正在比較字符串(from.value),而不是數字。
您可以使用帶有一元加+
轉換值的循環,例如
let isIncreasing = true
let i = 1
while (i < 6 && isIncreasing) {
isIncreasing = +$(".value" + i).val() < +$(".value" + (++i)).val();
}
if (isIncreasing) $("div").text("true");
else $("div").text("false");
默認情況下,您的輸入值為數字(輸入 = 30),但是當您更改輸入中的值時,該值將變為字符串值,並且不會將字符串隱式轉換為數字。
當你得到輸入的數值時,使用 parse function like Number 或 parseInt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.