我正在编写一些JavaScript代码,我正在使用一个计数器的闭包。代码如下:
function userHandler(){
var counter = 0;
var limit = "<?php echo ($_SESSION['limit']); ?>";
return function(){
var args = {
n : $('#name').val(),
s : $('#ssn').val(),
i : $('#id').val()
};
$.post("adduser.php",args,function(data){
var response = JSON.parse(data);
console.log(args);
if(response.status == 0){
counter += 1;
alert(counter);
if (counter == limit){
$('#limit').text(limit-counter);
}
}
console.log(data);
});
};
}
var opcall = userHandler();
$('#addUser').on("click", opcall);
我正在使用this guide来编写代码。问题是,我的计数器总是在警告框中显示1。它不会增加。我没有正确地调用内部方法吗?
编辑:HTML中有一个范围正在接收限制计数器值:
<p>
<span>Add User</span>
You can add <span id="limit"></span> more users. <a href='<?php echo $root; ?>editaccount.php?action=addOp'>Add another operator?</a>
</p>
每次提交使用Javascript的表单时,它总是显示(20-1)= 19。
更新:感谢您指出我的错误,点击“addUser”按钮后,另一个页面打开并显示确认消息,其中必须单击链接才能返回原始页面。我将确认消息移动到原始页面,现在它工作正常!!