2017-02-15 6 views
0

を働いていない別の関数の内部で確認してください。 ...のために、私はテスト目的のためにコードを記述しますが、何も返さない関数は常にを返します。BootstrapDialogは私が警告私はボタンのテキスト、メッセージテキストなどのようないくつかのパラメータを指定して再利用する側の<strong><em>BootstrapDialog.confirm</em></strong>方法別の関数を使用する確認メッセージをモーダルダイアログを表示するようにBootstrapDialogライブラリを使用

<head> 
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.34.7/css/bootstrap-dialog.min.css" rel="stylesheet"/> 
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.34.7/js/bootstrap-dialog.min.js"></script> 
<script> 
function callconfirm() 
{ 
    // var isConfirmed 
    BootstrapDialog.confirm({ 
      title: 'WARNING', 
      message: 'Warning! Drop your banana?', 
      type: BootstrapDialog.TYPE_WARNING, // <-- Default value is BootstrapDialog.TYPE_PRIMARY 
      closable: false, // <-- Default value is false 
      draggable: false, // <-- Default value is false 
      btnCancelLabel: 'Do not drop it!', // <-- Default value is 'Cancel', 
      btnOKLabel: 'Drop it!', // <-- Default value is 'OK', 
      btnOKClass: 'btn-warning', // <-- If you didn't specify it, dialog type will be used, 
      callback: function(result) { 
       // result will be true if button was click, while it will be false if users close the dialog directly. 
       if(result) { 
        return true; 
       }else { 
        return false; 
       } 
      } 
     }); 

} 

function checkConfirm() 
{ 
    var v=callconfirm(); 
    console.log(v); 
} 
</script> 
</head> 
<body> 
<button type="button" value="click" onclick="checkConfirm()" style="height: 50px;width: 50px" /> 
</body> 
+0

'callconfirm'は何も返さないので、それは' undefined'を返します。代わりに 'BootstrapDialog.confirm'の値を返したいですか? – Agalo

+0

はいisConfirmedを取得して、次のステップに進んでください。 – matrixwebtech

+0

私は答えを投稿し、それがうまく動作するかどうかを確認します。 – Agalo

答えて

0

<!DOCTYPE html> 
 
<meta charset="utf-8"> 
 
<head> 
 
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.34.7/css/bootstrap-dialog.min.css" rel="stylesheet"/> 
 
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.34.7/js/bootstrap-dialog.min.js"></script> 
 
<script> 
 
function callconfirm(cb) 
 
{ 
 
    var isConfirmed 
 
    BootstrapDialog.confirm({ 
 
      title: 'WARNING', 
 
      message: 'Warning! Drop your banana?', 
 
      type: BootstrapDialog.TYPE_WARNING, // <-- Default value is BootstrapDialog.TYPE_PRIMARY 
 
      closable: false, // <-- Default value is false 
 
      draggable: false, // <-- Default value is false 
 
      btnCancelLabel: 'Do not drop it!', // <-- Default value is 'Cancel', 
 
      btnOKLabel: 'Drop it!', // <-- Default value is 'OK', 
 
      btnOKClass: 'btn-warning', // <-- If you didn't specify it, dialog type will be used, 
 
      callback: cb 
 
     }); 
 

 
} 
 
</script> 
 
</head> 
 
<body> 
 
<button type="button" value="click" onclick="javascript:callconfirm(console.log)" style="height: 50px;width: 50px" /> 
 
</body> 
 

0

BootstrapDialog.confirmはアクションにコールバックを呼び出します。したがって、代わりにコールバックでconsole.logを行うことができれば良いです。関数はすぐに戻り、ユーザーが実際に[OK]または[キャンセル]ボタンをクリックするまで結果値に頼ることはできません。

の作業コード:

<head> 
 
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.34.7/css/bootstrap-dialog.min.css" rel="stylesheet"/> 
 
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.34.7/js/bootstrap-dialog.min.js"></script> 
 
<script> 
 
function callconfirm() 
 
{ 
 
    var isConfirmed 
 
    BootstrapDialog.confirm({ 
 
      title: 'WARNING', 
 
      message: 'Warning! Drop your banana?', 
 
      type: BootstrapDialog.TYPE_WARNING, // <-- Default value is BootstrapDialog.TYPE_PRIMARY 
 
      closable: false, // <-- Default value is false 
 
      draggable: false, // <-- Default value is false 
 
      btnCancelLabel: 'Do not drop it!', // <-- Default value is 'Cancel', 
 
      btnOKLabel: 'Drop it!', // <-- Default value is 'OK', 
 
      btnOKClass: 'btn-warning', // <-- If you didn't specify it, dialog type will be used, 
 
      callback: function(result) { 
 
       // result will be true if button was click, while it will be false if users close the dialog directly. 
 
       if(result) { 
 
        isConfirmed=true; 
 
        console.log(isConfirmed); 
 
       }else { 
 
        isConfirmed=false; 
 
        console.log(isConfirmed); 
 
       } 
 
      } 
 
     }); 
 

 
} 
 
</script> 
 
</head> 
 
<body> 
 
<button type="button" value="click" onclick="callconfirm()" style="height: 50px;width: 50px" /> 
 
</body>

+0

コールバック内の印刷は機能していますが、callconfirm()が何も返さない場合は、更新されたコードを確認してください。checkConfirm()内の返り値を返します。 – matrixwebtech

+0

私はドキュメント全体を読んでいませんが、その結果を返す方法は、コールバックを指定することです。したがって、コールバックをメソッドに渡して、結果を評価することができます。 – Agalo

+0

最初のポストで私の更新されたコードを確認してください。ここでidはコールバックメソッド名cb()をコールバックに割り当ててコールしますが、コールバックをメソッドに渡して結果を評価することができます。私はこれを理解することができません、あなたは例を挙げていただけますか? – matrixwebtech

0

Thankx AgaloとTareq提案と助けのためには、私は他のいくつかのいずれかを助けるかもしれソリューションコード怒鳴るを投稿してください。

<head> 
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.34.7/css/bootstrap-dialog.min.css" rel="stylesheet"/> 
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.34.7/js/bootstrap-dialog.min.js"></script> 
<script> 

function callconfirm(cb) 
{ 
    // var isConfirmed 
    BootstrapDialog.confirm({ 
      title: 'WARNING', 
      message: 'Warning! Drop your banana?', 
      type: BootstrapDialog.TYPE_WARNING, // <-- Default value is BootstrapDialog.TYPE_PRIMARY 
      closable: false, // <-- Default value is false 
      draggable: false, // <-- Default value is false 
      btnCancelLabel: 'Do not drop it!', // <-- Default value is 'Cancel', 
      btnOKLabel: 'Drop it!', // <-- Default value is 'OK', 
      btnOKClass: 'btn-warning', // <-- If you didn't specify it, dialog type will be used, 
      callback:cb /*function(result) { 
       // result will be true if button was click, while it will be false if users close the dialog directly. 
       if(result) { 
        return true; 
       }else { 
        return false; 
       } 
      }*/ 
     }); 

} 

function b1checkConfirm(result) 
{ 
    //callconfirm(); 
    console.log("B1 click and result is "+result); 
} 
function b2checkConfirm(result) 
{ 
    //callconfirm(); 
    console.log("B2 click and result is "+result); 
} 
</script> 
</head> 
<body> 
<button type="button" onclick="callconfirm(b1checkConfirm)" style="height: 50px;width: 50px" >B1</button> 
<button type="button" onclick="callconfirm(b2checkConfirm)" style="height: 50px;width: 50px" >B2</button> 
</body> 
関連する問題

 関連する問題