jquery没有等待确认消息,它正在运行所有功能

时间:2016-07-01 06:33:30

标签: jquery

我有一个多选Gridview,如果用户例如在网格中选择了3行:name 1,name2,name3。我应该向用户显示弹出确认消息,你确定吗?

jquery中的问题,它不等待确认消息,它调用所有函数。 我想要的是首先知道消息的结果然后调用函数

编辑:

function dosomething() 
{

    var $current = $("#confirm"); 
    var gridId = $("#Grid_Id");
    var confirmedArr = new Array;
    confirmedArr = gridId.jqGrid('getGridParam','selarrrow');
    var n=0;
    var i = 0;


    var arrayLength = confirmedArr.length;
    var user_id;    



        alert(arrayLength);
        if($current.is(":checked"))
        {
            for (var i = 0; i < arrayLength; i++) 
            {       
                var confirmMsg = "set off USER "+ confirmedArr[i];
                _showConfirmMsg(confirmMsg, "Are you sure ?", function(confirmChoice, theArgs)
                {
                    user_id = confirmedArr[i];
                    console.log(user_id);
                    usrar=user_id;
                    if (i>0)
                    {
                    usrar=  user_id +usrar;
                    }
                if (arrayLength==i)
                    {
                    confirmedme(usrar);
                    }
                });
            }

        }
        else
        {
        confirmedUserArr = gridId.jqGrid('getGridParam','selarrrow');
         confirmedme(confirmedArr);
        }

    }


function confirmedme(confirmedArr)
{
alert("confirm me");
}

2 个答案:

答案 0 :(得分:1)

你可以做的是尝试在回调中调用你的函数,具体取决于选择,当然是这样的。

_showConfirmMsg(confirmMsg, "Are you sure ?", function(confirmChoice, theArgs) {
     user_id = confirmedArr[i];
     i++;
     // Call your function here.
     if (confirmChoice == something) {
        yourFunction();
     }
}

更新:

尝试将此块移出for循环。

if (arrayLength==i)
{
    confirmedme(usrar);
}

这样的事情:

var count = 0;
for (var i = 0; i < arrayLength; i++) {       
    var confirmMsg = "set off USER "+ confirmedArr[i];
    _showConfirmMsg(confirmMsg, "Are you sure ?", function(confirmChoice, theArgs) {
        // Blah blah
        count ++;
     });
}

if (arrayLength==count)
{
    confirmedme(usrar); // Not sure how you use the usrar but make sure you declare this variable before the loop.
}

答案 1 :(得分:0)

尝试改变:

_showConfirmMsg(confirmMsg, ""Are you sure ?", function(confirmChoice, theArgs)

为:

_showConfirmMsg(confirmMsg, "Are you sure ?", function(confirmChoice, theArgs)
相关问题