2015-10-29 54 views
1

我有叫我的JavaScript函數的JavaScript函數,我FUNC islike這樣的:的MessageBox超過

function sugParitValidation(){ 
    var isValid = false; 
    Ext.MessageBox.confirm(' ','Are you sure you want to do this?', function(btn){ 
     if(btn == 'yes'){ 
     isValid = true; 
    } 
}); 
return isValid ; 
} 

我的問題是 - if語句和返回statment正在發生,只有在確認窗口被顯示之後。 這樣我無法對用戶選擇的內容做出反應。 如何解決這個問題?嘗試allready使用setTimeOut,沒有任何變化....

+0

試試'window.confirm()'。這個聲明會阻止,直到用戶的迴應。 – San

+1

你有一個回調,當用戶點擊確認按鈕時被調用。您不能等到用戶按下按鈕,因爲您會阻止整個用戶界面。您可以返回承諾或將另一個回調傳遞給sugParitValidation()方法,並在用戶單擊按鈕以便繼續流程時調用它。 –

+0

window.confirm()對我不好,因爲我必須使用extjs風格。我可能會打個電話功能 – InbalIta

回答

0

我認爲你正在嘗試做這樣的事情。

someFunction(){ 
    if(sugParitValidation()){ 
      //todo something 
    } 
    else{ 
      //todo another thing 
    } 

} 

你可以通過回調來簡單地做到這一點。這是一個例子。

someFunction(){ 
    var messageCallback = function(btn){ 
      if(btn === 'yes'){ 
       //todo something 
      } 
      else{ 
       //todo another thing 
      } 

    } 
    Ext.MessageBox.confirm(' ','Are you sure you want to do this?', 
    messageCallback); 
}