Как отключить перезагрузку при запуске JS-функции в Laravel

#javascript #laravel-5

#javascript #laravel-5

Вопрос:

Я создал эту функцию копирования в буфер обмена. это работает в моем Laravel. Но есть некоторые проблемы. Я могу скопировать, но когда я нажимаю кнопку КОПИРОВАНИЯ, текущая страница перезагружается. Еще одна проблема заключается в том, что я хотел бы сделать классный дизайн, подобный «Клонированию с HTTPS» на Github в разделе «Использовать Git или оформить заказ с помощью SVN, используя веб-URL. » предложение на изображении маленького окна. Не могли бы вы научить меня, что не так с моим кодом, пожалуйста?

Форма Laravel находится здесь, мне нужно написать вот так, но при нажатии на копию в буфере обмена я не хочу переходить на следующую страницу

   <form action="{{ url('nextpage') }}" method="post">
  

index.blade.php

 <p><span class="js-copytext">{{$post_data['somedata']}}</span></p>
<p><button class="js-copybtn">copy</button></p>
  

js-файл

 <script>

var copyEmailBtn = document.querySelector('.js-copybtn');
copyEmailBtn.addEventListener('click', function(event) {

    var copyText = document.querySelector('.js-copytext');
    var range = document.createRange();
    range.selectNode(copyText);
    window.getSelection().addRange(range);
    try {

        var successful = document.execCommand('copy');
        var msg = successful ? 'successful' : 'unsuccessful';
        console.log('Copy command was '   msg);

    } catch(err) {
        console.log('error');
    }

    window.getSelection().removeAllRanges();
});
</script>
  

Ответ №1:

Вам нужно добавить event.preventDefault() внутри вашего обработчика.

 copyEmailBtn.addEventListener('click', function(event) {
    event.preventDefault();
    // The rest of your code...
});
  

Комментарии:

1. Дорогой @Lawless, большое тебе спасибо! Это сработало. Я ценю! Сделайте мне одолжение, не могли бы вы научить меня немного большему. Могу ли я изменить дизайн копии буфера обмена github? например, просто добавить CDN?

2. @machagr добро пожаловать. Однако мне неясно, о чем вы просите дальше, потому что, если я протестирую ваш код (без Laravel), он сработает — jsfiddle.net/Lawlesss/vuf6z5r2/1

3. Дорогой @Lawless Спасибо, что ответил мне. Ваш код идеален. это работает очень хорошо. Я спрашивал совершенно разные вещи, это касается дизайна. Я хотел бы сделать дизайн, подобный «Clone with HTTPS» на github, с зеленой кнопкой и текстовым полем. Возможно, вы знаете, как изменить дизайн? итак, я спросил ^^