我对使用jQuery
的整数比较感到困惑我有2个输入值。
所以基本上第二个输入字段中来自用户的输入出价必须始终高于当前的最高出价。
我使用以下jQuery代码来比较这两个代码:
$(function(){
$('.bid').focusout(function(){
if($('.bid').val() <= $('.highestBid').val()){
$('.bidPlaced').prop('disabled', true);
}
else{
$('.bidPlaced').prop('disabled', false);
$('.buyItNow').prop('disabled', false)
}
});
});
代码工作正常,但刚才我发现了一个错误
如果目前的最高出价是:123美元 和用户输入:21美元 该功能无效
但是如果用户键在122美元,代码将工作
我发现jQuery代码只比较了第一个值,在这种情况下是$(1)23到$(2)1。
任何人都可以告诉我jQuery代码有什么问题吗?
谢谢!
答案 0 :(得分:8)
当您使用jQuery input
获取.val()
元素的值时,它将始终为string
。 input
元素是type="number"
并不重要。 javascript 值为string
。
如果您知道您的号码将始终为整数,则可以parseInt
:
if (parseInt($('.bid').val()) <= parseInt($('.highestBid').val())) {
如果您的号码可能包含小数位,您也可以使用parseFloat
代替parseInt
。
if (parseFloat($('.bid').val()) <= parseFloat($('.highestBid').val())) {
顺便说一句,这不是jQuery,它是javascript语言。所有jQuery都使用javascript以方便的方式读出输入元素的值,并以字符串形式返回给你。
由您了解这些值始终为string
s,如果您需要将它们作为number
进行比较,请使用parseInt
之类的javascript函数, parseFloat
在比较之前将它们转换为正确的javascript类型。