jquery输入值比较只获得一位数

时间:2012-03-26 19:20:00

标签: jquery input compare

我对jquery和im面对这些问题的新手

我有这些代码

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 
<script>
$(".adults").change(function(){
    var test = $(".maxpeople").val();
    if ($(this).val() > $(".maxpeople").val()) {
        alert("test");
    }
    alert(test)
});
</script>

我需要比较数字,如果.adults的值大于.maxpeople的值,则显示警告。 代码有效,但看起来只需要一位数。 exjample:

.maxpeople = 17

我把1放入。成人并且没问题,但是如果我放2则显示警报,现在如果我放16但它没有显示警报..我在做什么错误?

6 个答案:

答案 0 :(得分:3)

val()将返回一个字符串。如果要比较数字,则必须将字符串转换为数字。

假设您只想要整数,请使用parseInt

答案 1 :(得分:1)

除非另有说明,否则值将被视为字符串

试试这个:

$(".adults").change(function(){
    var test = $(".maxpeople").val();
    if (  parseInt($(this).val(),10) > parseInt($(".maxpeople").val(),10)) {
        alert("test");
    }
    alert(test)
});

答案 2 :(得分:1)

您需要比较整数,而不是字符串。请考虑以下示例:

console.log("12" > "2"); //false
console.log(12 > 2); //true

你应该使用parseInt函数来解决这个问题,即:

var test = parseInt($(".maxpeople").val(), 10);

答案 3 :(得分:0)

.val()将成为一个字符串。如果要进行数字比较,则需要将其设为数字​​。

parseInt($(this).val()) > parseInt($(".maxpeople").val())

答案 4 :(得分:0)

您的错误是,您正在比较字符串。

使用parseInt()或parseFloat()

答案 5 :(得分:0)

我认为您的问题源于.val()返回string这一事实。像这样使用parseInt()

if (parseInt($(this).val()) > parseInt($(".maxpeople").val())) {
    alert("test");
}