如何解决如何检查输入数字是否在多个数字之间?
我有一个输入,要求您输入您为某物支付的价格
<input type="number" class="purchase_price">
现在,我需要Jquery进行的操作就是更改隐藏的输入Purchase_price_date的值
<input type="hidden" name="purchase_price_data" class="purchase_price_data" value="">
但是,我需要它来检查用户在purchas_price输入框中输入的数字,并查看它在列表中的位置: 如果该物品是购买的;
250-500,然后将purchase_price_data的值更改为“最多覆盖500”
501-751然后将Purchase_price_data的值更改为“最多覆盖750”
751-1000,然后将purchase_price_data的值更改为“最多覆盖1000”
我正在尝试类似的事情
$('input.purchase_price').focus(function () {
var $this = $(this)
t = setInterval(
function () {
if (($this.val() < 250 || $this.val() > 1000) && $this.val().length != 0) {
if ($this.val() < 250) {
$("input.purchase_price_data").val("hello");
}
if ($this.val() > 250) {
$("input.purchase_price_data").val("hello something else");
}
if ($this.val() > 500) {
$("input.purchase_price_data").val("hello again");
}
}
},50)
})
但是它确实可以满足我的需求,当我添加第三个if时,它完全走错了路。 (在测试时,我的purchase_price_data输入没有隐藏)
任何人都可以帮忙
解决方法
一个选择是对所有值使用<
,并用if-else-if
-范围的下限已经由上一个if
处理了。
如果上限为500,则可以使用<=
例如val<=500
$('input.purchase_price').on("input",function() {
var val = $(this).val() * 1;
if (val <= 0)
$("input.purchase_price_data").val("please enter a value");
else if (val < 250) {
//0-249
$("input.purchase_price_data").val("cheapskate");
} else if (val < 500) {
//250-499
$("input.purchase_price_data").val("about right");
} else {
//500+
$("input.purchase_price_data").val("ooh,generous");
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class="purchase_price" />
<input class="purchase_price_data" />
另一种选择是使用具有范围和响应的数组,这将使其成为数据驱动的并且更加灵活。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。