【问题标题】:How to add custom queues with back button如何使用后退按钮添加自定义队列
【发布时间】:2020-03-19 20:20:29
【问题描述】:

我正在查看 SweetAlert2 的文档示例,它会生成一个带有步骤的窗口并包含返回按钮。

我找不到配置不同队列的方法。根据文档,可以使用 .queue() 对其进行配置,但它不适用于我。

有人知道怎么做吗?

const steps = ['1', '2', '3']
const swalQueueStep = Swal.mixin({
  confirmButtonText: 'Forward',
  cancelButtonText: 'Back',
  progressSteps: steps,
  input: 'text',
  inputAttributes: {
    required: true
  },
  reverseButtons: true,
  validationMessage: 'This field is required'
})

async function backAndForth () {
  const values = []
  let currentStep

  for (currentStep = 0; currentStep < steps.length;) {
    const result = await swalQueueStep.fire({
      title: 'Question ' + steps[currentStep],
      inputValue: values[currentStep],
      showCancelButton: currentStep > 0,
      currentProgressStep: currentStep
    })

    if (result.value) {
      values[currentStep] = result.value
      currentStep++
    } else if (result.dismiss === 'cancel') {
      currentStep--
    } else {
      break
    }
  }

  if (currentStep === steps.length) {
    Swal.fire(JSON.stringify(values))
  }
}

backAndForth()
&lt;script src="https://cdn.jsdelivr.net/npm/sweetalert2@9"&gt;&lt;/script&gt;

【问题讨论】:

    标签: javascript sweetalert sweetalert2


    【解决方案1】:
    const steps = ['1', '2', '3']
    const swalQueueStep = Swal.mixin({
        confirmButtonText: 'Forward',
        cancelButtonText: 'Back',
        progressSteps: steps,
        input: 'text',
        inputAttributes: {
            required: true
        },
        reverseButtons: true,
        validationMessage: 'This field is required'
    })
    async function backAndForth() {
        const values = []
        let currentStep
        for (currentStep = 0; currentStep < steps.length;) {
            if (steps[currentStep] == 1) {
                var result = await swalQueueStep.fire({
                    title: 'Question .' + steps[currentStep],
                    inputValue: values[currentStep],
                    showCancelButton: currentStep > 0,
                    currentProgressStep: currentStep
                })
            } else if (steps[currentStep] == 2) {
                var result = await swalQueueStep.fire({
                    title: 'Question ..' + steps[currentStep],
                    inputValue: values[currentStep],
                    showCancelButton: currentStep > 0,
                    currentProgressStep: currentStep
                })
            } else if (steps[currentStep] == 3) {
                var result = await swalQueueStep.fire({
                    title: 'Question ...' + steps[currentStep],
                    inputValue: values[currentStep],
                    showCancelButton: currentStep > 0,
                    currentProgressStep: currentStep
                })
            } else {
                break
            }
            if (result.value) {
                values[currentStep] = result.value
                currentStep++
            } else if (result.dismiss === 'cancel') {
                currentStep--
            } else {
                break
            }
    
            if (currentStep === steps.length) {
                Swal.fire(JSON.stringify(values))
            }
        }
    }
    backAndForth();
    

    【讨论】:

    • 我对脚本做了一些改动并让它工作,在我看到你的帖子之前也在寻找解决方案。注意“const result”应该是“var result”
    猜你喜欢
    • 2020-07-21
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    • 2013-09-20
    相关资源
    最近更新 更多