似乎不能+1 javascript变量

时间:2013-03-07 10:50:56

标签: javascript jquery

我正在尝试将前一个数字后面的1添加到变量中,以便在用户附加字段时将其添加到文本框的值中。在这个阶段,它从一个开始,单击加号图标,它转到两个。但是再次按它并保持两个。

如何在前一个号码上添加1?

function addAucField() {
    var fieldCount = 1;
    var newCount = parseInt(fieldCount+1);
    $("#addField").append("<br /><br />\n<input type=\"text\" name=\"aucSpots[]\" placeholder=\"Spot "+newCount+"\" class=\"span9\">");
    return false;
}

4 个答案:

答案 0 :(得分:2)

你正在添加 fieldCount ..所以点击, fieldCount 是1,函数获得2..bravoo ..工作正常..但然后第二次点击... fieldCount 是1(再次)...所以得到2(所以你的函数很好......)......但是输出不正确......所以把fieldCount放在函数外面并将其更改为newcount的值..下次 fieldCount 为2,您将获得3。

应该是

 var fieldCount = 1;
 function addAucField() {
    var newCount = parseInt(fieldCount+1);
    fieldCount=newCount;
    $("#addField").append("<br /><br />\n<input type=\"text\" name=\"aucSpots[]\" placeholder=\"Spot "+newCount+"\" class=\"span9\">");
   return false;
}

答案 1 :(得分:1)

我认为问题是每次调用函数addAucField()时,fieldCount变量都被设置为1.尝试在函数外定义它。

答案 2 :(得分:1)

只需创建一个闭包并实际递增fieldCount

var addAucField = (function() {
    var fieldCount = 1;
    return function() {    
        var newCount = ++fieldCount; // increment fieldCount
        $("#addField").append("<br /><br />\n<input type=\"text\" name=\"aucSpots[]\" placeholder=\"Spot "+newCount+"\" class=\"span9\">");
        return false;
    };
})();

你也可以使fieldCount全局化,但污染全局命名空间几乎总是一个坏主意。请注意,需要增加fieldCount

var fieldCount = 1;
function addAucField(){
    var newCount = ++fieldCount; // increment fieldCount
    $("#addField").append("<br /><br />\n<input type=\"text\" name=\"aucSpots[]\" placeholder=\"Spot "+newCount+"\" class=\"span9\">");
    return false;
 };

答案 3 :(得分:-3)

如何将var newCount = parseInt(fieldCount+1);更改为var newCount = parseInt(fieldCount)+1;

(未测试的)

相关问题