Nút bật lên Xác nhận Javascript Có, Không thay vì OK và Hủy


113

Cửa sổ bật lên Xác nhận Javascript, tôi muốn hiển thị nút Có, Không thay vì OK và Hủy.

Tôi đã sử dụng mã vbscript này:

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

điều này chỉ hoạt động trong IE, Trong FF và Chrome, nó không hoạt động.

Có giải pháp nào để đạt được điều này trong Javascript không?

Tôi cũng muốn thay đổi tiêu đề của cửa sổ bật lên như trong IE 'Windows Internet Explorer' được hiển thị, tôi muốn hiển thị ở đây tên ứng dụng của riêng tôi.


Tôi đã tự tạo hộp thoại có không, nó thực sự dễ dàng tùy chỉnh: github.com/stein189/YesNoDialog Bạn có thể thử hộp thoại này nếu bạn muốn
Szenis

Câu trả lời:


88

Rất tiếc, không có hỗ trợ trình duyệt chéo nào để mở hộp thoại xác nhận không phải là cặp OK / Cancel mặc định. Giải pháp bạn đã cung cấp sử dụng VBScript, chỉ có sẵn trong IE.

Tôi sẽ đề xuất sử dụng thư viện Javascript có thể tạo hộp thoại dựa trên DOM để thay thế. Dùng thử giao diện người dùng Jquery: http://jqueryui.com/


17

Cách duy nhất bạn có thể thực hiện điều này theo cách trình duyệt chéo là sử dụng một khuôn khổ như jQuery UI và tạo Hộp thoại tùy chỉnh:

Hộp thoại jquery

Nó không hoạt động theo cách chính xác như cửa sổ bật lên xác nhận được tích hợp sẵn nhưng bạn có thể làm cho nó làm những gì bạn muốn.


4
Để rõ ràng, đó không phải là cách DUY NHẤT - tất nhiên bạn có thể viết bằng Javascript, không phải đó là điều đúng đắn nên làm.
LeonardChallis

1
@LeonardChallis nhưng bao gồm một thư viện lớn chỉ dành cho chức năng div phương thức thì tốt hơn? Tôi không nghĩ vậy
nicholaswmin

8

Bạn cũng có thể sử dụng http://projectshadowlight.org/jquery-easy-confirm-dialog/ . Nó rất đơn giản và dễ sử dụng. Chỉ bao gồm thư viện chung jquery và chỉ một tệp nữa:

<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

Bạn không thể thực hiện việc này trên nhiều trình duyệt bằng hàm xác nhận () hoặc hàm tương tự. Tôi thực sự khuyên bạn nên sử dụng một cái gì đó như tính năng hộp thoại jQuery UI để tạo hộp thoại HTML thay thế.



3

Thư viện nổi bật (nhưng nhỏ và đơn giản) mà bạn có thể sử dụng là JSDialog: js.plus/products/jsdialog

Đây là một mẫu để tạo hộp thoại với các nút Có và Không:

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"
);

Ảnh chụp màn hình demo JS Dialog


1
Này, bạn tải cái này ở đâu vậy?
Gary

@Gary Links đã được mặc định thành văn bản có gạch chân màu xanh lam trong nhiều thập kỷ. Sử dụng chuột của bạn để di chuột qua văn bản màu xanh lam ở dòng đầu tiên của câu trả lời này và nhấp vào nút bên trái.
Giỏ hàng bị bỏ rơi

plugin cao cấp không giúp lập trình viên
Chris Pink

1

bạn có thể sử dụng món ngọt.

nhập vào HTML của bạn:

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

và để kích hoạt cảnh báo:

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'
    )
  }
})

để biết thêm dữ liệu, hãy truy cập trang web cảnh báo sweetalert


0

1) Bạn có thể tải xuống và tải lên các tệp bên dưới trên trang web của mình

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

2) sau đó bạn có thể sử dụng trực tiếp mã bên dưới

$ .alerts.okButton = "có"; $ .alerts.cancelButton = "không";

trong chức năng document.ready.

Hãy thử nó sẽ hoạt động.

Cảm ơn


-11

câu trả lời rất cụ thể cho vấn đề là xác nhận đối thoại Js Chức năng:

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

Nó hiển thị hộp thoại với các nút hủy ok, để thay thế các nút này bằng có không không phải là nhiệm vụ quá đơn giản, bạn cần viết hàm jQuery.


1
Anh ấy muốn một Có và Không. Xác nhận này chỉ cho biết đồng ý hoặc hủy bỏ. Đó là lý do tại sao điều này được bỏ phiếu xuống.
SpoiledTechie.com
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.