Tôi không thể tìm ra cách tạo liên kết bấm loại trực tiếp mà không thực thi giá trịTruy cập trừ khi hộp thoại xác nhận javascript trả về true.Gõ ràng buộc nhấp chuột với javascript xác nhận
Nó có thể giống như thế này:
<a data-bind="confirmClick: { message: 'Are you sure?', click: someMethod }">Confirmable link</a>
Bên trong, các confirmClick ràng buộc sẽ làm điều gì đó như:
if (confirm(message)) {
click();
}
Tôi biết tôi có thể nhận được xung quanh cần phải làm điều này bằng cách đặt mã confirm(...)
trong chế độ xem Mô hình của tôi, nhưng điều đó dường như không thích hợp để đặt loại mã đó. Tôi có lẽ cũng có thể đi xa như để làm điều này loại hộp thoại xác nhận với jQueryUI hoặc Bootstrap, nhưng tôi muốn một cái gì đó tôi chỉ có thể thả vào bất kỳ dự án.
tôi đã lùng sục internets không có may mắn .. Tôi thậm chí còn nhìn vào mã nguồn cho sự kiện click loại trực tiếp của (https://github.com/knockout/knockout/blob/master/src/binding/defaultBindings/event.js), nhưng nó không giống thân thiện ở tất cả ...
Bất kỳ sự giúp đỡ nào cả sẽ được đánh giá cao!
Chỉ cần để hoàn thiện mọi thứ .... những gì nên vô danh 'click: function() { ....} 'trả về nếu xác nhận trả về false? –
nó sẽ trả về 'undefined' vì vậy KO sẽ không gọi trình xử lý của bạn cũng là hành động của trình duyệt (nhấp vào liên kết) sẽ không được thực hiện. Nhưng bạn có thể thay đổi điều này theo nhu cầu của bạn. – nemesv
Đã được thử nghiệm này trước khi câu trả lời khác đến và nó hoạt động cực kỳ tốt. Tôi rất vui vì đã dành thời gian để tự mình tự mình làm điều đó, nhưng tôi đã không đi đến đâu gần mức độ giác ngộ này. Cảm ơn! –