Javascript闭包中的计数器没有递增

时间:2015-07-28 08:12:04

标签: javascript jquery

我正在编写一些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”按钮后,另一个页面打开并显示确认消息,其中必须单击链接才能返回原始页面。我将确认消息移动到原始页面,现在它工作正常!!

0 个答案:

没有答案