1

默认情况下,我的输入值是1,每次单击我的button. 当它达到时它停止添加20

我不知道为什么我的代码停在 number3并且只是重复3

在此处输入图像描述

这是我的 HTML

<input type="hidden" id="total" value="20" /> //total num
<input type="hidden" id="cur_num" value="1" /> //current num
<button type="button" id="add" >Add</button>

这是这里的 javascript 和演示http://jsfiddle.net/zXpen/

$(document).ready(function() {
    $(document).on("click", "#add", function() {

        cur = $('#cur_num').val();
        total = $('#total').val();
        console.log(cur);

        if (cur <= total) {
            cur = parseInt(cur)+parseInt(1);
            $('#cur_num').val(cur);
        }
    });
});
4

2 回答 2

0

您需要将值转换为整数:

cur = parseInt($('#cur_num').val());
total = parseInt($('#total').val());

目前您的代码正在比较“2”<=“20”,然后是“3”<=“20”(作为字符串)。因此,不满足 if 条件并且其中的代码不会运行。

此外,您不需要parseInt(1). cur = parseInt(cur)+1;很好。

于 2013-11-03T15:26:05.357 回答
0

.val()返回一个字符串,因此按cur <= total字典顺序比较两个字符串,即每个位置的字符相互比较。并且"2"in"20"小于"3"in "3"

您必须在比较它们之前将值转换为数字,而不是之后,例如使用一元加号运算符。也不要忘记声明你的变量var

var cur = +$('#cur_num').val();
var total = +$('#total').val();
于 2013-11-03T15:27:13.217 回答