gpt4 book ai didi

javascript - jQuery.val() 整数数据类型比较

转载 作者:搜寻专家 更新时间:2023-11-01 05:11:17 25 4
gpt4 key购买 nike

我对使用 jQuery 进行整数比较感到有点困惑

我有 2 个输入值。

  • input type="number"class="highestBid"值=
  • input type="number"min="0"class="bid"name="bid"id="bid"

所以基本上,用户在第二个输入字段中输入的出价必须始终高于当前最高出价。

我使用以下 jQuery 代码来比较这两个代码:

$(function(){
$('.bid').focusout(function(){
if($('.bid').val() <= $('.highestBid').val()){
$('.bidPlaced').prop('disabled', true);
}
else{
$('.bidPlaced').prop('disabled', false);
$('.buyItNow').prop('disabled', false)
}
});

});

代码运行正常,但是刚才发现了一个bug

如果当前最高出价是:$123和用户输入:$21该功能将不起作用

但如果用户输入 $122,代码将起作用

我发现 jQuery 代码只是将第一个值(在本例中为 $(1)23)与 $(2)1 进行比较。

有人能告诉我 jQuery 代码有什么问题吗?

谢谢!

最佳答案

当您使用 jQuery .val() 获取 input 元素的值时,它将始终是一个 stringinput 元素是 type="number" 并不重要。 javascript 值是一个字符串

如果你知道你的数字永远是整数,你可以parseInt:

if (parseInt($('.bid').val()) <= parseInt($('.highestBid').val())) {

如果您的数字可能有小数位,您也可以使用 parseFloat 而不是 parseInt

if (parseFloat($('.bid').val()) <= parseFloat($('.highestBid').val())) {

顺便说一句,不是 jQuery 以这种方式表现,而是 javascript 语言。 jQuery 所做的只是使用 javascript 以方便的方式读出输入元素的值,并将其作为字符串返回给您。

这些值始终是 string 取决于您,如果您需要将它们与 number 进行比较,请使用 javascript 函数,如 parseInt parseFloat 在比较之前将它们转换为正确的 javascript 类型。

关于javascript - jQuery.val() 整数数据类型比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27347004/

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