单击动态添加按钮时,函数调用仅工作一次

时间:2015-07-21 16:58:17

标签: javascript php jquery html ajax

好的,我有一个动态添加到我的HTML表单的按钮。当我单击此按钮时,下面的JQuery运行。有一个函数调用checkLimit(),它基本上返回一个数字,所以我知道要显示哪个文本框。该函数第一次运行很好,但第二次只进入checkLimit()调用并退出。它甚至没有调用该函数(我通过弹出警报来测试它,你会看到这些已在下面注释掉):

JQUERY:$(文件).ready(function()

内部
for (var i = 0; i < 25; i++){
$("#Add_").on("click", "#plus_"+i, function(){
      checkLimit();

        if (checkLimit = 1){
        var txtbox = "<div id='Div_2_Int"+i+"'> <label> <br> </label> "
            + "<input type='text' id='Txtbox_2_Int_"+i+"' name=Txtbox_2_Int_"+i+ "'value=''>";


            $('.addSys').append(txtbox);
           }
        else if(checkLimit = 2){
        var txtbox = "<div id='Div_3_Int"+i+"'> <label> <br> </label> "
        + "<input type='text' id='Txtbox_3_Int_"+i+"' name=Txtbox_3_Int_"+i+ "'value=''>";

        $('.addSys').append(txtbox);

        }

});

}

Javascript功能:

var num4 = 2;
function checkLimit() {
//alert("test2");
    if(num4 >= 4){
        alert("Only 3!");
    }else if(num4 == 3){
            num4++;
            return 2;                
    }else if(num4 == 2){
            num4++;
            return 1;
    }
    }

2 个答案:

答案 0 :(得分:1)

if子句中有两个错误,例如:

if (checkLimit = 1){

将其替换为:

if(checkLimit()===1){

否则保持函数的变量checkLimit不会被调用,而是被值1覆盖。另外,如果要比较值,请使用comparance运算符(&#34; ===&#34;或&#34 ; ==&#34;)而不是赋值运算符(&#34; =&#34;)。请注意比较运算符的差异。

答案 1 :(得分:0)

您没有将checkLimit();的返回值分配给变量。

尝试:var checkLimit = checkLimit();

此外,如果您没有传递任何参数并使用全局变量,该函数的重点是什么?