Javascript ยืนยันป๊อปอัปใช่ปุ่มไม่ใช่แทนตกลงและยกเลิก


113

Javascript ยืนยันป๊อปอัปฉันต้องการแสดงปุ่มใช่ไม่ใช่แทนตกลงและยกเลิก

ฉันใช้รหัส 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

น่าเสียดายที่ไม่มีการรองรับข้ามเบราว์เซอร์สำหรับการเปิดกล่องโต้ตอบการยืนยันที่ไม่ใช่คู่ตกลง / ยกเลิกเริ่มต้น โซลูชันที่คุณระบุใช้ VBScript ซึ่งมีเฉพาะใน IE

ฉันขอแนะนำให้ใช้ไลบรารี Javascript ที่สามารถสร้างไดอะล็อกที่ใช้ DOM แทน ลองใช้ Jquery UI: http://jqueryui.com/


17

วิธีเดียวที่คุณสามารถทำได้ด้วยวิธีข้ามเบราว์เซอร์คือการใช้กรอบเช่น jQuery UI และสร้างกล่องโต้ตอบที่กำหนดเอง:

ไดอะล็อก jquery

มันไม่ทำงานในลักษณะเดียวกับป๊อปอัปยืนยันในตัว แต่คุณควรจะทำให้มันทำตามที่คุณต้องการได้


4
เพื่อความชัดเจนไม่ใช่วิธีเดียว - คุณสามารถเขียนของคุณเองใน Javascript ได้แน่นอนไม่ใช่ว่าจะเป็นสิ่งที่ถูกต้อง
LeonardChallis

1
@LeonardChallis แต่การรวมไลบรารีขนาดใหญ่ไว้สำหรับการทำงานของ modal div จะดีกว่าไหม? ฉันไม่คิดอย่างนั้น
nicholaswmin

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 Dialog


1
เฮ้คุณจะโหลดสิ่งนี้ที่ไหน
Gary

@Gary Links มีค่าเริ่มต้นเป็นข้อความสีน้ำเงินที่ขีดเส้นใต้มานานหลายทศวรรษ ใช้เมาส์เพื่อวางเมาส์เหนือข้อความสีน้ำเงินในบรรทัดแรกของคำตอบนี้แล้วคลิกปุ่มซ้าย
รถเข็นที่ถูกทิ้ง

ปลั๊กอินพรีเมียมไม่ได้ช่วยโปรแกรมเมอร์
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 Function:

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

มันแสดงกล่องโต้ตอบพร้อมปุ่ม ok ยกเลิกการแทนที่ปุ่มเหล่านี้ด้วยใช่ไม่ใช่ไม่ใช่เรื่องง่ายเพราะคุณต้องเขียนฟังก์ชัน jQuery


1
เขาต้องการใช่และไม่ใช่การยืนยันนี้ให้เพียงตกลงหรือยกเลิก นั่นคือสาเหตุที่มีการโหวตให้ลดลง
SpoiledTechie.com
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.