gpt4 book ai didi

javascript - 无法在 JQuery 中检查多个 if else 条件

转载 作者:行者123 更新时间:2023-12-02 23:56:01 24 4
gpt4 key购买 nike

我正在尝试检查 JQuery 中的一些多个条件,但它没有返回所需的结果。无论我输入什么,它总是会进入其他条件。

$(function() {
$('#installment').on("keydown keyup", check);
function check() {
var inst = Number($("#installment").val());
if (inst === 2 || inst === 4 || inst === 6 || inst === 12) {
return true;
} else {
$("#installment").val('');
alert("you can not set wrong value");
return false;
}
}
});
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<tr>
<td>Number of Installment</td>
<td><input type="text" name="installment" id="installment"></td>
</tr>

最佳答案

问题出在 value 更新之前触发的 keydown 。因此,如果您输入“2”。该值将返回 '' 并且 Number('')0 所以它总是转到 else只需删除 keydown 事件,仅使用 keyup

$(function() {
$('#installment').on("keyup", check);

function check() {
var inst = Number($("#installment").val());
console.log(inst)
if (inst === 2 || inst === 4 || inst === 6 || inst === 12) {
return true;
} else {
$("#installment").val('');
alert("you can not set wrong value");
return false;
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<tr>
<td>Number of Installment</td>
<td><input type="text" name="installment" id="installment"></td>
</tr>

正如@Radu Dişă在评论中提到的,如果1不能修复,那么12永远不会有效,您可以使用String.prototype.startsWith()

$(function() {
$('#installment').on("keyup", check);
function check() {
var inst = Number($("#installment").val());
console.log(inst)
if (inst === 2 || inst === 4 || inst === 6 || '12'.startsWith(String(inst))) {
return true;
} else {
$("#installment").val('');
alert("you can not set wrong value");
return false;
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<tr>
<td>Number of Installment</td>
<td><input type="text" name="installment" id="installment"></td>
</tr>

关于javascript - 无法在 JQuery 中检查多个 if else 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55391952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com