我对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但它没有显示警报..我在做什么错误?
答案 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");
}