Javascript确认弹出框是,否按钮,而不是确定和取消


113

Javascript确认弹出窗口,我想显示“是,否”按钮,而不是“确定”和“取消”。

我已经使用了以下vbscript代码:

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

这仅适用于IE,在FF和Chrome中,但无效。

是否有任何工作来实现此目的?

我也想更改弹出窗口的标题,就像在IE中显示“ Windows Internet Explorer”一样,我想在这里显示我自己的应用程序名称。


我自己做了一个“不”对话框,它真的很容易自定义:github.com/stein189/YesNoDialog如果您想尝试的话,可以尝试一下
Szenis 2015年

Answers:


88

不幸的是,没有跨浏览器的支持来打开不是默认的OK / Cancel对的确认对话框。您提供的解决方案使用VBScript,仅在IE中可用。

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


17

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

jQuery对话框

它与内置的确认弹出窗口的工作方式并不完全相同,但是您应该能够使其按照自己的意愿进行。


4
为了清楚起见,这不是唯一的方法-当然,您可以用Javascript编写自己的方法,而不是正确的做法。
LeonardChallis 2012年

1
@LeonardChallis但包括一个仅用于模式div功能的大型库更好吗?我不这么认为
nicholaswmin 2014年

8

您也可以使用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>

4

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



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对话框演示截图


1
嘿,您在哪里下载?
加里

@Gary链接数十年来一直默认使用带下划线的蓝色文本。用鼠标悬停在此答案第一行的蓝色文本上,然后单击向左按钮。
被遗弃的购物车,

高级插件对程序员没有帮助
Chris Pink

1

您可以使用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警报网站


0

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

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

2)之后,您可以直接使用以下代码

$ .alerts.okButton =“是”; $ .alerts.cancelButton =“否”;

在document.ready函数中。

请尝试,它将起作用。

谢谢


-11

关键的答案是确认对话Js功能:

confirm('Do you really want to do so');

它显示带有“确定”取消按钮的对话框,将这些按钮替换为“是”不是那么简单,因为您需要编写jQuery函数。


1
他想要是和否。此确认仅表示确定或取消。这就是为什么这被否决。
SpoiledTechie.com '17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.