Используйте функцию Javascript if для отображения всплывающего окна SweetAlert - PullRequest
2 голосов
/ 13 марта 2019

Я хотел бы отобразить всплывающее окно SweetAlert , если загрузка в данный момент отключена, это задается элементом li, имеющим класс «upload-off»

Как можноЯ включаю условие Javascript if для отображения всплывающего окна и просто ничего не делаю, если класс «upload-on», если он присутствует, <li>

Я планирую использовать Vue на странице позднее, поэтому желательнонеобходимо использовать Javascript, а не jQuery (как я здесь, потенциальных конфликтов с Vue и jQuery)

<!-- There are two classes which toggle, upload-off and upload-on-->
<li class="uploadli upload-off">
    <p>Upload Off</p>
</li>

<input value="" id="myuploadbutton" type="file" name="Uploader" placeholder="Upload here">

<!-- Sweetalert Popup - Only display popup if uploads are currently disabled



function upload_check() {
swal({
    text: "Uploads are currently disabled, please apply here at http://www.example.com/apply",
    icon: "error",
    buttons: ['Apply Now'],
    dangerMode: true
    })
    .then(function(value) {
    console.log('returned value:', value);
    });
}

-->

ОБЗОР: пользователь нажимает кнопку загрузки, если класс * upload-off присутствует на <li> элемент, который мы получаем во всплывающем окне SweetAlert

Вот похожая проблема SweetAlert

Как показать SweetAlert в JavaScript

Ответы [ 2 ]

1 голос
/ 13 марта 2019

Попробуйте, добавьте условие if для проверки upload-off в событии click.

Удалить строку event.returnValue = true; , если вы не хотите ничего делать при загрузке

$("input[type=file]").on('click', function(event) {
  if (document.querySelector('li.uploadli.upload-off')) {
    swal({
        text: "Uploads are currently disabled, please apply here at http://www.example.com/apply",
        icon: "error",
        buttons: ['Apply Now'],
        dangerMode: true
      })
      .then(function(value) {
        console.log('returned value:', value);
      });
    event.preventDefault();
    //do something
  } else if (document.querySelector('li.uploadli.upload-on')) {
    swal({
        text: "Uploads are currently disabled, please apply here at http://www.example.com/apply",
        icon: "error",
        buttons: ['Apply Now'],
        dangerMode: true
      })
      .then(function(value) {
        console.log('returned value:', value);
      });
    event.returnValue = true; //delete if you want to do nothing on upload-on
    //   alert("nothing is done");

  } else {
    alert("nothing");
  }

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/2.1.2/sweetalert.min.js"></script>
<li class="uploadli upload-off">
  <p>Upload Off</p>
</li>

<input value="" id="myuploadbutton" type="file" name="Uploader" placeholder="Upload here">
1 голос
/ 13 марта 2019

Итак, проверьте, существует ли элемент

document.querySelector("#myuploadbutton")
  .addEventListener('click', function(evt) {
    var li = document.querySelector('li.uploadli.upload-off');
    if (li) {
      evt.preventDefault()
      swal({
        text: "Uploads are currently disabled, please apply here at http://www.example.com/apply",
        icon: "error",
        buttons: ['cancel', 'Apply Now'],
        dangerMode: true
      }).then(function(value) {
        console.log('returned value:', value);
        if (value) {
          // window.location.href = "//www.example.com/apply"
        }
      });
    }
  })
<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
<ul>
  <li class="uploadli upload-off">
    <p>Upload Off</p>
  </li>
</ul>

<input value="" id="myuploadbutton" type="file" name="Uploader" placeholder="Upload here">
...