确认对话框,将取消操作设置为默认值

3
我正在尝试使用https://github.com/HubSpot/vex模态脚本来创建确认对话框。目前,若确认对话框出现,则“确定”按钮将被选为默认选项。请问是否有方法可以更改这一设置?我希望取消按钮成为默认选项,这样当任何人按下回车键时,不会发生任何事情。
谢谢您的回答。
最好的问候, Thomas

发布您的HTML和JavaScript。 - n1k1ch
2个回答

8

设置数组中按钮的文本

vex.dialog.open({          
    message: 'Are you absolutely sure you want to destroy the alien planet?', 
    overlayClosesOnClick: false, // set false to click out
    callback: function (value) {
        console.log(value);
    },
    buttons: [
        $.extend({}, vex.dialog.buttons.YES, { text: 'Your Button For Yesy' }),
        $.extend({}, vex.dialog.buttons.NO, { text: 'Your Button For No' })
    ]
 });

谢谢您的回答。这在对话框内运行良好,但如果我在外面点击,它会执行错误的按钮操作(原本是取消,现在是确定),我该如何改变这个呢? - Stiller Eugen
我编辑了我的问题。设置overlayClosesOnClick为false以禁用点击外部关闭。 - Tuyoshi Vinicius

1
要将其作为默认行为进行修改,请更改vex JavaScript文件中的按钮顺序和类名称。(vex.combined.js)
这将使“取消”按钮成为默认按钮。
dialog.buttons = { 
        NO: {
          text: 'Cancel',
          type: 'button',
          className: 'vex-dialog-button-primary',
          click: function noClick () {
            this.value = false
            this.close()
          }
        },
        YES: {
          text: 'OK',
          type: 'submit',
          className: 'vex-dialog-button-secondary',
          click: function yesClick () {
            this.value = true
          }
        }
}

dialog.defaultOptions = {
    ..
    buttons: [
      dialog.buttons.NO,
      dialog.buttons.YES
    ],
    ..
  }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接