【问题标题】:Javascript Confirm popup Yes, No button instead of OK and CancelJavascript 确认弹出窗口是,否按钮而不是确定和取消
【发布时间】:2010-10-23 20:28:57
【问题描述】:

Javascript Confirm 弹出窗口,我想显示 Yes, No 按钮而不是 OK 和 Cancel。

我用过这个vbscript代码:

<script language="javascript">
    function window.confirm(str) {
        execScript('n = msgbox("' + str + '","4132")', "vbscript");
        return (n == 6);
    }
</script>

这仅适用于 IE,在 FF 和 Chrome 中,它不起作用。

是否有任何解决方法可以在 Javascript 中实现这一点?

我还想更改弹出窗口的标题,例如在 IE 中显示“Windows Internet Explorer”,我想在此处显示我自己的应用程序名称。

【问题讨论】:

标签: javascript html button popup confirm


【解决方案1】:

Sweetalert2 提供不同类型的对话框。你也可以试试这个。 https://sweetalert2.github.io/

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
【解决方案2】:

你可以使用 sweetalert。

导入您的 HTML:

<script src="https://cdn.jsdelivr.net/npm/sweetalert2@8"></script>

并触发警报:

Swal.fire({
  title: 'Do you want to do this?',
  text: "You won't be able to revert this!",
  type: 'warning',
  showCancelButton: true,
  confirmButtonColor: '#3085d6',
  cancelButtonColor: '#d33',
  confirmButtonText: 'Yes, Do this!',
  cancelButtonText: 'No'
}).then((result) => {
  if (result.value) {
    Swal.fire(
      'Done!',
      'This has been done.',
      'success'
    )
  }
})

更多数据请访问sweetalert alert website

【讨论】:

    【解决方案3】:

    您可以使用的特色(但又小又简单)库是 JSDialog:js.plus/products/jsdialog

    下面是一个使用“是”和“否”按钮创建对话框的示例:

    JSDialog.showConfirmDialog(
        "Save document before it will be closed?\nIf you press `No` all unsaved changes will be lost.",
        function(result) {
            // check result here
        },
        "warning",
        "yes|no|cancel"
    );
    

    JS Dialog demo screenshot

    【讨论】:

    • 嘿,你在哪里下载这个?
    • @Gary 链接几十年来一直默认为蓝色、带下划线的文本。将鼠标悬停在此答案第一行的蓝色文本上,然后单击左键。
    • 高级插件不是程序员的帮助
    【解决方案4】:

    1) 您可以在您的网站上下载和上传以下文件

    <link href="/Style%20Library/css/smoothness/jquery.alerts.css" type="text/css" rel="stylesheet"/> 
    

    2) 之后就可以直接使用下面的代码了

    $.alerts.okButton = "是"; $.alerts.cancelButton = "否";

    在 document.ready 函数中。

    请尝试它会起作用。

    谢谢

    【讨论】:

      【解决方案5】:

      看看http://bootboxjs.com/

      非常容易使用:

       bootbox.confirm("Are you sure?", function(result) {
        Example.show("Confirm result: "+result);
      });
      

      【讨论】:

        【解决方案6】:

        以跨浏览器的方式完成此操作的唯一方法是使用 jQuery UI 之类的框架并创建自定义对话框:

        jquery Dialog

        它与内置确认弹出窗口的工作方式不完全相同,但你应该能够让它做你想做的事情。

        【讨论】:

        • 为了清楚起见,这不是唯一的方法 - 当然,您可以用 Javascript 编写自己的方法,但这并不是正确的做法。
        • @LeonardChalis 但包含一个仅用于模态 div 功能的大型库更好?我不这么认为
        【解决方案7】:

        您也可以使用 http://projectshadowlight.org/jquery-easy-confirm-dialog/ 。它非常简单易用。只包含 jquery 通用库和一个文件:

        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
        <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
        <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/blitzer/jquery-ui.css" type="text/css" />
        <script src="jquery.easy-confirm-dialog.js"></script>
        

        【讨论】:

          【解决方案8】:

          您不能使用 confirm() 函数或类似函数来执行此跨浏览器。我强烈建议您使用类似 jQuery UI dialog 的功能来创建 HTML 对话框。

          【讨论】:

            【解决方案9】:

            不幸的是,没有跨浏览器支持打开一个不是默认确定/取消对的确认对话框。您提供的解决方案使用的是 VBScript,它只在 IE 中可用。

            我建议使用可以构建基于 DOM 的对话框的 Javascript 库。试用 Jquery UI:http://jqueryui.com/

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-09-10
              • 1970-01-01
              • 1970-01-01
              • 2020-08-17
              • 2013-12-30
              相关资源
              最近更新 更多