Sweetalert2 проверка нескольких входов - PullRequest
0 голосов
/ 03 ноября 2018

Я пытаюсь иметь несколько форм внутри множественных модалов, поскольку я прочитал, что должен использовать swal.mixin с очередью, все эти формы имеют несколько входов внутри.

Я уже сделал это, но не можете найти способ проверить все эти формы, любое предложение?

Вот мой код:

    swal.mixin({
    confirmButtonText: 'Siguiente',
    buttonsStyling: false,
  }).queue([
    {
      html: 
        "<form class='formulario' action='' method='post'>" +

          "<div class='fila'>"+
            "<img src='src/images/svg/icons/person.svg' class='imagen'/>"+
            "<input id='name' class='espacio-datos' name='nombre' type='text' placeholder='Nombre' maxlength='20' required>" +
          "</div>"+

          "<div class='fila'>"+
            "<img src='src/images/svg/icons/id.svg' class='imagen'/>"+
            "<input id='ced' class='espacio-datos' name='num_ident' type='text' placeholder='Cedula' onkeypress='onlyNumbers(event)'>" +
          "</div>"+

          "<div class='fila'>"+
            "<img src='src/images/svg/icons/phone.svg' class='imagen'/>"+
            "<input id='tlf' class='espacio-datos' name='num_telef' type='text' placeholder='Telefono' onkeypress='onlyNumbers(event)'>" +
          "</div>"+
        "</form>",
      preConfirm: function () {        
        var array = {
          'nombre' : $("#name").val(),
          'cedula' : $("#ced").val(),
          'telefono' : $("#tlf").val(),
        }

        return array;
      },
    },
    {
      html:
        "<form action='' method='post'>" + 
          "<div class='main-cont'>"+
            "<span>" +
              "Por favor ingresa el codigo de verificacion NUIP "+
              "que hemos enviado a tu celular" +
            "</span>"+

            "<div class='row cuadros'>" +
              "<input id='num-1' class='inp-num' data-pos='0' type='text' maxlength='1' name='one' onkeypress='isInputNumber(event)' autofocus='autofocus'/>" +
              "<input id='num-2' class='inp-num' data-pos='1' type='text' maxlength='1' name='two' onkeypress='isInputNumber(event)'>" +
              "<input id='num-3' class='inp-num' data-pos='2' type='text' maxlength='1' name='three' onkeypress='isInputNumber(event)'>" +
              "<input id='num-4' class='inp-num' data-pos='3' type='text' maxlength='1' name='four' onkeypress='isInputNumber(event)'>" +
            "</div>" +
          "</div>"+
        "</form>",

      preConfirm: function () {
        return [
          $("#num-1").val(),
          $("#num-2").val(),
          $("#num-3").val(),
          $("#num-4").val(),
        ];
      },
    }

1 Ответ

0 голосов
/ 03 ноября 2018

На sweetalert2 функция inputValidator не вызывается, если для модальной модели не определен input.

Способ обойти это в вашем случае - добавить input в миксин, но затем скрыть его, используя onBeforeOpen.

В основном миксин становится:

 swal.mixin({
    confirmButtonText: 'Siguiente',
    buttonsStyling: false,
    input: 'text'
  })

И затем вы добавляете следующий код в каждый элемент массива очереди, чтобы скрыть введенный текст:

  onBeforeOpen: function (dom) {
    swal.getInput().style.display = 'none';
  }

Вы можете увидеть реализацию этого, используя ваш код здесь: https://codepen.io/anon/pen/xQxWMN

...