Предупреждение Bootbox не отображается в представлении Laravel - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь использовать предупреждение о подтверждении загрузки в моем представлении Laravel, которое выглядит лучше, чем стандартное js, но предупреждение не отображается, у меня есть popper, bootstrap и bootbox в сценариях

это фрагмент кода, весь вид намного больше, но это миниатюрная версия, чтобы сделать его более читабельным

<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/js/bootstrap.bundle.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/js/bootstrap.bundle.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootbox@5.1.2/dist/bootbox.all.min.js"></script>


<table>
<tr>
<th>ID</th>
<th>Action</th>
</tr>
@foreach($etablissements as $etablissement)
<tr>
<td>{{$etablissement->id}}</td>
<td>
<form action="{{ route('etablissements.destroy', $etablissement->id) }}" method="POST">
    {{ method_field('DELETE') }}
    {{ csrf_field() }}
    <button type='submit' name ="s"></button>
</form>
</td>
</tr>
@endforeach
</table>


<script type="text/javascript">
    var aTags = document.getElementsByTagName("s");
    for (var i=0;i<aTags.length;i++){
        addEventListener(aTags[i], 'click', function(){
          bootbox.confirm({
    message: "This is a confirm with custom button text and color! Do you like it?",
    buttons: {
        confirm: {
            label: 'Yes',
            className: 'btn-success'
        },
        cancel: {
            label: 'No',
            className: 'btn-danger'
        }
    },
    callback: function (result) {
        console.log('This was logged in the callback: ' + result);
    }
});
        });
            }
</script>

1 Ответ

1 голос
/ 30 апреля 2019

Я не использовал bootbox, но из вашей JS я заметил несколько вещей, которые вам необходимо изменить:

var aTags = document.getElementsByTagName("s");

s - это не имя тега, аимя элемента, поэтому измените его на следующее:

var aTags = document.getElementsByName("s");

Затем, чтобы прикрепить прослушиватель события click к каждой кнопке, измените его следующим образом:

aTags[i].addEventListener('click', function(e){
    e.preventDefault(); // this will prevent the default action of the button
    ...

Как только вы это сделаете,убедитесь, что у вас открыта консоль браузера для проверки на наличие ошибок.

...