Javascriptの確認ポップアップ[はい]と[キャンセル]ではなく[いいえ]ボタン


113

Javascriptのポップアップを確認します。「OK」と「キャンセル」の代わりに「はい、いいえ」ボタンを表示します。

私はこの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」のようにポップアップのタイトルも変更したいのですが、ここに自分のアプリケーション名を表示したいです。


私は自分で「はい/いいえ」ダイアログを非常に簡単にカスタマイズできました:github.com/stein189/YesNoDialog必要に応じてこれを試すことができます
Szenis

回答:


88

残念ながら、デフォルトのOK /キャンセルペアではない確認ダイアログを開くためのクロスブラウザサポートはありません。あなたが提供したソリューションは、IEでのみ利用可能なVBScriptを使用しています。

代わりに、DOMベースのダイアログを構築できるJavaScriptライブラリを使用することをお勧めします。Jquery UIを試してください:http ://jqueryui.com/


17

ブラウザ間でこれを実現できる唯一の方法は、jQuery UIのようなフレームワークを使用してカスタムダイアログを作成することです。

jqueryダイアログ

組み込みの確認ポップアップとまったく同じように機能するわけではありませんが、望みどおりに実行できるはずです。


4
明確にするために、これは唯一の方法ではありません-もちろん、Javascriptで独自の方法で書くことができます。
LeonardChallis 2012

1
@LeonardChallisですが、モーダルdiv機能のためだけに大きなライブラリを含める方が良いですか?私はそうは思いません
ニコラスミン2014

8

http://projectshadowlight.org/jquery-easy-confirm-dialog/を使用することもできます。それは非常にシンプルで使いやすいです。jquery共通ライブラリともう1つのファイルのみを含めるだけです。

<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 Dialogデモのスクリーンショット


1
ねえ、あなたはこれをどこにダウンロードしますか?
ゲイリー

@Gary Linksは何十年もの間、デフォルトで青の下線付きテキストに設定されています。マウスを使用して、この回答の最初の行の青いテキストにカーソルを合わせ、左ボタンをクリックします。
放棄されたカート

プレミアムプラグインはプログラマの助けにはなりません
Chris Pink

1

スイートアラートを使用できます。

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アラートのWebサイトにアクセスしてください


0

1)以下のファイルをサイトにダウンロードしてアップロードできます

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

2)その後、以下のコードを直接使用できます

$ .alerts.okButton = "yes"; $ .alerts.cancelButton = "no";

document.ready関数内。

動作しますのでお試しください。

ありがとう


-11

ポイントに対する非常に具体的な答えは、ダイアログJS関数の確認です:

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

okキャンセルボタンでダイアログボックスを表示します。これらのボタンをyes noで置き換えるのは、jQuery関数を記述する必要があるため、それほど単純なタスクではありません。


1
彼ははいといいえを望んでいました。この確認はOKまたはキャンセルのみを与えます。だからこそ、これは否決されています。
SpoiledTechie.com 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.