javascript 带 if 语句的确认框

javascript confirm box with if statement

我正在尝试构建一个 jacvascript 运行 总计计算器,它允许用户指定用于计算屏幕上显示的(总和)总计的输入。

在用户更改输入之前,我希望有一个确认框,允许用户select确定(这会导致计算新的总数)或取消。

我已将带有 IF 语句的确认框代码插入到 GetTotal 函数中,但它似乎不起作用。每次都会计算新的总数,无论用户 select 是否同意或取消。非常感谢任何帮助。迈克

<head>
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.35.1/js/bootstrap-dialog.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
</head>

<script>
var input1 = 5555;
var input2 = 666;

$(document).ready(function() {
  document.getElementById("input1").value = input1;
  document.getElementById("input2").value = input2;
  GetFirstTotal();  
});

function GetFirstTotal() {
    var total = 0;
    $('input[type=text]').each(function(index, value) {
      total += parseInt($(value).val() || 0);
    });

    $("#chkTotal").html(total);
}

function GetTotal() {
    var total = 0;
BootstrapDialog.confirm('Are you sure you want to do this?');
if(confirm("text")==1)
{  
    $('input[type=text]').each(function(index, value) {
      total += parseInt($(value).val() || 0);
    });

    $("#chkTotal").html(total);
}
else {}}
</script>

TOTAL:
<div id="chkTotal"></div>
<br>
<input type="text" name="input1" id="input1"/>
<input type="button" value="Change X" onclick="GetTotal(this)"/>
<br>
<br>
<input type="text" name="input2" id="input2"/>
<input type="button" value="Change Y" onclick="GetTotal(this)"/>

默认的 Javascript confirm() 函数应该 return 一个布尔值,所以你应该可以使用 :

if(confirm('Are you sure you want to do this?'))
{
      // Do these things
      $('input[type=text]').each(function(index, value) {
           total += parseInt($(value).val() || 0);
      });
      $("#chkTotal").html(total);
}

但是,您似乎正在使用 BootstrapDialog 插件,它的操作似乎有点不同,它接受回调以检查输入的值:

因此,如果您想专门将它用作确认选项,您的代码可能看起来像这样:

BootstrapDialog.confirm('Are you sure you want to do this?', function(result){
   // If result is true, then the user confirmed the message
   if(result) {
         // Do work here
         $('input[type=text]').each(function(index, value) {
             total += parseInt($(value).val() || 0);
         });
         $("#chkTotal").html(total);
   }
});