2016-07-01 3 views
-2

У меня есть multi select Gridview, если пользователь, например, выбрал 3 строки в сетке: name 1, name2, name3. я должен показать пользователю сообщение с подтверждением всплывающего окна, вы уверены? ».jquery не ждет подтверждения сообщения, он запускает все функции

проблема в 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"); 
} 
+0

почему downvote? неясно – Moudiz

+1

1. Отформатируйте свой код правильно. 2. Исправить ошибки синтаксиса. 3. Что такое '_showConfirmMsg'? 4. Если '_showConfirmMsg' является асинхронным (поэтому у него есть аргумент обратного вызова), почему ваш код будет ждать его? –

+0

Возможно, потому что ваш код не отформатирован правильно. Вы должны отредактировать немного ... Проверьте правильность отступов. Кстати, ваша первая функция пропускает '}' в конце. (Возможно, опечатка). –

ответ

0

попробуйте изменить:

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

к:

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

Что вы можете сделать, это попытаться вызвать свою функцию внутри callbac k в зависимости от выбора, конечно, что-то вроде этого.

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

ОБНОВЛЕНО:

Попробуйте переместить этот блок из вашего для петли.

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. 
} 
+0

, что я должен добавить для чего-то? – Moudiz

+0

Ну, это просто мое предположение, что перед вызовом функции вам нужно проверить значение выбора подтверждения. Если это не так, просто удалите условие if() и поместите туда вызов функции. –

+0

плохо показать вам мой код обновления, возможно, вы можете мне помочь – Moudiz

Смежные вопросы