我正在尝试将前一个数字后面的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;
}
答案 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;
(未测试的)