如何在甜蜜警报 2 的输入中启用确认按钮

Zee*_*dil 4 javascript jquery sweetalert sweetalert2

当用户没有更改甜蜜警报内文本框中的任何值时,我需要禁用确认按钮,并且仅当文本框中的值发生更改时才启用它,但我似乎无法找到解决方法。这是我的代码:

swal({
            title: 'Please Enter Page Name',
            input: 'text',
            inputValue: PageName,
            confirmButtonText: 'Save',
            onOpen: function (){
                swal.disableConfirmButton(); //this disables the button
            }
            preConfirm: function (Name) {
                return new Promise(function (resolve, reject) {
                    resolve();
                })
            },
            allowOutsideClick: false
        })
Run Code Online (Sandbox Code Playgroud)

我曾经使用onOpen过该swal.disableConfirmButton();方法,但我不知道在哪里使用swal.enableConfirmButton();. 有没有类似onInput或类似的功能?如果是,如何使用它来达到预期的结果?

这是我迄今为止取得的成就的代码笔。

https://codepen.io/zeeshanadilbutt/pen/NLvmZz?editors=0010

Dra*_*orn 6

由于没有onInput或类似的 for input: text,您可以使用getInputinsideonOpen并向其添加事件侦听器以相应地启用或禁用您的button

检查工作片段。

swal({
  input: 'text',
  onOpen: function () {
    swal.disableConfirmButton();
    swal.getInput().addEventListener('keyup', function(e) {
      if(e.target.value === '') {
        swal.disableConfirmButton();
      } else {
        swal.enableConfirmButton();
      }
    })
  }
});
Run Code Online (Sandbox Code Playgroud)
  <script src="https://unpkg.com/sweetalert2"></script> 
Run Code Online (Sandbox Code Playgroud)

  • 您不需要 jQuery 来添加事件侦听器 :) 我简化了代码。 (3认同)
  • 我想过这个,这似乎是唯一的解决方案。感谢帮助 :) (2认同)