如果没有执行定义,递归工作不正常并失去功能?

时间:2017-09-12 12:54:36

标签: javascript jquery

我有一个名为Check_Reviewed(Form)的函数,我有一个div作为确认框。我在这个函数中显示并隐藏它,然后再次调用此函数。但随叫随到,它会转到函数的最后一个括号,并且不会执行完整的函数(如调试器所示并经历过)。我无法理解这种行为。

代码段如下:

在HTML文件中,我有一个ID为createdConfirmBox的div display hidden

JS功能:

function hideBox(boxName){
    $("#"+boxName).hide();
    $("bl").hide();
}
function createConfirmBox(name){
    var confirmBox = $("#createdConfirmBox");
    var content = "<div   id='cross_createdConfirmBox_"+name+"' class='cross'>X</div><span id='spanCreatedConfirmBox_"+name+"' style='text-align:center; font-size:18px; line-height:25px; width:580px; padding:7px; font-style:italic; background-color:white; display:inline-block; border-radius:10px;'></span><br><br><div style='text-align:center;' id='divCreatedConfirmBox_"+name+"'></div><br><div style='text-align:center;'><button class='btn btn-primary' type='button'   id='btn_createdConfirmBox_yes_"+name+"' style='padding:5px 25px; margin-right:40px; font-size:18px;' >YES</button><button class='btn btn-cancel' type='button'   style=' padding:5px 25px; font-size:18px; margin-left:40px;' id='btn_createdConfirmBox_no_"+name+"'>NO</button></div><br>";
    confirmBox.html(content);
}

function Check_review(Form){
...
...
...
var company_new = $("#company").val().trim();
        if(company_old && company_old!="" && company_new==""){
            createConfirmBox("company");
            $("#createdConfirmBox").attr("box-made-for","company");
            $("#spanCreatedConfirmBox_company").html("<label style='color:red;'><b>Warning!!!</b></label><br>You have removed <b>Company Name</b> from Contact Details.<br><br><span style='padding:7px;display:inline-block;'>Existing Company Name: <b>"+company_old+"</b><br>New Company Name: <label style='color:#c8c8c8;'>Removed<label></span>");
            $("#divCreatedConfirmBox_company").html("<label  style='color:#464444;'>Do you want to continue without <b>Company Name?</b></label>");
            $("#btn_createdConfirmBox_yes_company").on('click',function(){
                company_old="";
                $("#company").val("");
                hideBox("createdConfirmBox");
                 Check_Reviewed(Form);
            });
            $("#btn_createdConfirmBox_no_company").on('click',function(){
                $("#company").val(company_old);
                hideBox("createdConfirmBox");
                 Check_Reviewed(Form);
            });
            $("#cross_createdConfirmBox_company").on('click',function(){
                $("#company").val(company_old);
                hideBox("createdConfirmBox");
                 Check_Reviewed(Form);
            });
            $("#createdConfirmBox").show();
            $("#bl").show();
            return true;
        }
    }

正如我在点击按钮btn_createdConfirmBox_no_company时说的那样,它会转到点击它时定义的功能。当涉及到行Check_Reviewed(Form);时,它会转到函数的最后一行}而不执行代码。 Yhen转到点击函数});的最后一行,然后退出。

我无法理解这种行为。

  

如果你有任何其他方法我可以完成我的工作,那么解释一下,我想在没有Check_Reviewd(Form);全局变量的情况下点击任何按钮调用此函数Form

1 个答案:

答案 0 :(得分:0)

实际上,问题出在函数上面的代码中。它通过使用return false将其置于函数之外。我用断点来达到这个目的。原因是它正在使ajax请求成功时禁用复选框,只要城市名称发生变化就被触发,并且由于此禁用复选框,我在完成它之前总是退出该功能。

  

我知道这是一个非常愚蠢的错误和缺乏知识。感谢大家的回应和宝贵的时间。