簡體   English   中英

jQuery UI對話框作為確認

[英]Jquery UI dialog as confirmation

  function Globally() {
    $("#dialogid").dialog({ width: 300, modal: true, show: 'drop', hide: 'drop',
        buttons: {
            "Ok": function () { return true; $(this).dialog('close'); },
            "Cancel": function () { return false; $(this).dialog('close'); }
        }
    });
  }

  function test()
  {
    if(Globally())
      alert("Ok");
    else
      alert("Cancel");
  }

我正在嘗試創建一個確認對話框,並且希望將其放置在一個函數中(在本例中為Globally()),因為我在許多不同的函數中使用了確認對話框,但這無法正常工作,控件從Globally()函數,而不會獲得true or false值。 我希望它停在那里,直到用戶按“ Ok or Cancel為止。 我怎樣才能做到這一點?

如果要運行這樣的代碼,則必須使用內置的確認函數:

var question = confirm("Proceed?")
if (question){
   // continue
 } else {
   // stop
 }

這是因為僅在使用時進行確認會阻止整個javascript執行,並允許您選擇一個答案或另一個答案(確定,取消)。

像jQuery對話框之類的對話框無法停止腳本執行,因此即使您使用

if(Globally())
  alert("Ok");
else
  alert("Cancel");

它只會執行Globally()函數並緊接着繼續執行-無需等待用戶回答。

如果您確實要使用jq對話框,則將回調函數添加到按鈕中。

"Ok": function () { callbackFunctionTrue(); },
"Cancel": function () { callbackFunctionFalse(); }

然后在測試函數中放棄if / else statement()。

那不是它的工作原理

做就是了

    "Ok": function () { alert('OK'); $(this).dialog('close'); },
    "Cancel": function () { alert('Not ok'); $(this).dialog('close'); }

要么

    "Ok": function () { $(this).dialog('close'); test(1) },
    "Cancel": function () {$(this).dialog('close'); test(0) }

function test(ok){
  alert(ok?"Ok":"Cancel");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM