У меня есть скрипт, используемый для предотвращения перехода от страницы, чтобы изменения не были потеряны случайно.К сожалению, это также «ломает» страницу, если скрипт активируется путем отправки формы.Таким образом, я больше не могу отправить форму после того, как я нажму кнопку отправки и решу остаться на странице.
Это не не отключает кнопку отправки, когда навигация выполняется чем-то иное , чем кнопка отправки.
Есть ли способ предотвратить это и позволить мне "случайно" активировать этот скрипт несколько раз, при этом все еще имея возможность использовать мою кнопку отправки после всплывающего окна?
<script>
window.onbeforeunload = function() {
var inputs = document.getElementsByTagName('input');
var unfinished = 'false';
for (var i = 0; i < inputs.length; ++i) {
if (inputs[i].value != '') {
unfinished = 'true';
}
}
if (unfinished == 'true') {
return 'Are you sure you want to leave?';
}
}
</script>
Перед активацией выходного блокиратора (с помощью кнопки отправки):
<input type="submit" name="commit" value="Edit product" class="btn btn-warning btn-block" data-disable-with="Edit product">
После активации блокировщика выхода (с помощью кнопки отправки):
<input type="submit" name="commit" value="Edit product" class="btn btn-warning btn-block" data-disable-with="Edit product" disabled="">
Как видите, он добавляет disabled=""
, когда по какой-то причине находится на моем сайте.
Форма:
<%= simple_form_for @pack, url: pack_path(@pack), method: :patch do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.input :title, class: "form-control center" %>
<%= f.input :pack_type, class: "form-control center" %>
<%= f.input :category_id, prompt: "Select Category", collection: [ "sample-pack", "vocal-pack", "preset-pack", "track-pixel", "track-indie", "track-orchestral"], input_html: { class: "form-control center" } %>
<%= f.input :price, class: "form-control center" %>
<%= f.input :audio_embed, class: "form-control center" %>
<%= f.input :video_embed, class: "form-control center" %>
<%= f.input :art_link, prompt: "ENTER N/A IF STRACK", class: "form-control center" %>
<%= f.input :download_url, class: "form-control center" %>
<%= f.submit "Edit product", class: "btn btn-warning btn-block" %>
<% end %>
<%= link_to "Cancel", packs_path, class: "btn btn-danger top-drop" %>