如何检查输入的数字是否在多个数字Jquery之间?
How to check if an input number is between multiple numbers Jquery?
我有一个输入要求你输入你为某物支付的价格
<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
- 然后范围的 lower-limit 已经被之前的 [=14= 处理了].
您可以使用 <=
例如 val<=500
如果上限是 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" />
另一种方法是使用具有范围和响应的数组,这将使它 data-driven 更加灵活。
我有一个输入要求你输入你为某物支付的价格
<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
- 然后范围的 lower-limit 已经被之前的 [=14= 处理了].
您可以使用 <=
例如 val<=500
如果上限是 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" />
另一种方法是使用具有范围和响应的数组,这将使它 data-driven 更加灵活。