0

我的returnjquery 代码有问题。我希望return一旦它被击中就退出该函数,而是该函数继续执行。我希望我不是唯一一个遇到这个问题的人,但经过搜索,我找不到我的困境的答案。以下是我的功能:

$(".myButtonClass").on("click", function() {
    $(".myTextBoxClass").children('input').each(function() {
        if ($(this).css('display') === "inline-block") {
            var doLeave = confirm("Does the user want to move forward");

            if (!doLeave) {
                return;
            }
        }
    });
    document.vendorEdit.action = "newPage.asp";
    document.vendorEdit.submit();
});

我做错了什么伙计们?

4

4 回答 4

1

你有两个函数,你必须在这两个函数中给出'return false'试试这个:

  $(".myButtonClass").on("click", function() {
        var valid = true;
        $(".myTextBoxClass").children('input').each(function() {
            if ($(this).css('display') === "inline-block") {
                var doLeave = confirm("Does the user want to move forward");

                if (!doLeave) {
                    valid = false;      
                    return false;
                }            
            }


        });

        if(!valid){ 
          return false;
        };
        document.vendorEdit.action = "newPage.asp";
        document.vendorEdit.submit();
    });
于 2013-10-10T14:31:31.607 回答
0

你需要return false;退出一个.each循环。return true;进入下一个迭代。

于 2013-10-10T14:22:50.720 回答
0

您当前return的语句导致each循环中断而不是从event handler. doLeave在使用 return 语句退出每个循环之前在条件块中设置标志,并使用它flag从事件处理程序返回。

$(".myButtonClass").on("click", function() {
    var flagToReturn = false;
    $(".myTextBoxClass").children('input').each(function() {
        if ($(this).css('display') === "inline-block") {
            var doLeave = confirm("Does the user want to move forward");

            if (!doLeave) {
                flagToReturn = true;      
                return;
            }            
        }
        if(flagToReturn) return;

    });
    document.vendorEdit.action = "newPage.asp";
    document.vendorEdit.submit();
});
于 2013-10-10T14:23:28.493 回答
0
$(".myButtonClass").on("click", function() {
self= this ; 

    selft. flagToReturn = false;
    $(".myTextBoxClass").children('input').each(function() {
        if ($(this).css('display') === "inline-block") {
            var doLeave = confirm("Does the user want to move forward");

            if (!doLeave) {
                 selft. flagToReturn = true;      
                return;
            }            
        }
        if( selft. flagToReturn ) return;

    });
    document.vendorEdit.action = "newPage.asp";
    document.vendorEdit.submit();
});
于 2013-10-10T14:26:01.037 回答