jquery.AreYouSure
jquery.AreYouSure copied to clipboard
Alerts on trying to change the form
Starting over as I had added areYouSure via `yarn add areyousure" and that is not the same as this code.
Apologies to @leo-rp who tried to help.
So now I've got yet another version. I'm trying to use a version moded by @mohideen as he's added something to deal with Turbolinks. Partially described in a Pull request and downloaded from here.
Downloaded and put in /app/webpack/src/are-you-sure.js
(renamed without jquery.)
Added import areYouSure from "../src/are-you-sure.js";'; to
application.jsand have Turbolinks and
import 'jquery';`
Added to layouts/application.html.erb
<script>
$(function() {
jQuery('are_you_sure > form').areYouSure(
{'softPageUnloadEvent':'turbolinks:before-visit'}
);
console.log('In $(function in application.html.erb');
});
</script>
/_form.html.erb
:
<div class="col-lg-4" id="are_you_sure">
<%= simple_form_for(@year, html: { class: 'form-inputs' }) do |form| %>
...
I added console.log("Modideen. src/are-you-sure settings: ", settings);
to are_you_sure.js
and the Chrome console shows
Mohideen. src/are-you-sure settings:
{message: "You have unsaved changes!", dirtyClass: "dirty", change: null, silent: false, addRemoveFieldsMarksDirty: false, …}
addRemoveFieldsMarksDirty: false
change: null
dirtyClass: "dirty"
fieldEvents: "change keyup propertychange input"
fieldSelector: ":input:not(input[type=submit]):not(input[type=button])"
message: "You have unsaved changes!"
silent: false
softPageUnloadEvent: "turbolinks:before-visit"
But when I close the edit page, I do not get any alerts. Probably not understanding mohideen's changes
Thank you
PS: Old comments need to be removed as they are irrelevant now.
@MtnBiker
- You are selecting the div container not the form.
- I see a typo error, you wrote: $('#are_you_sure').areyousure(... should be : $('#are_you_sure').areYouSure();
- this is a jQuery plugin , try : jQuery('#are_you_sure').areYouSure();
@leo-rp Thank you for your comments. Why would I get any response if there is a typo? I think it was correct because I implemented with yarn add areyousure
and in application.js
import 'areyousure/areyousure.js';
.
In any case I'm now trying just data-areyousure
in the div without the script, but how do I add to the form?
<%= simple_form_for(@year, html: { class: 'form-inputs' }) do |form| %>
I don't think I want to add an id because an id is created by Rails as shown in the html
<form class="simple_form form-inputs" id="edit_year_1361" novalidate="novalidate" action="/years/1361" accept-charset="UTF-8" method="post"><input type="hidden" name="_method" value="patch"><input type="hidden" name="authenticity_token" value="…">
Ok, if You can't change the Id , try this, select the form inside the div with : jQuery('#are_you_sure > form');
<script>
$(function() {
jQuery('#are_you_sure > form ').areyousure(
{
message: 'It looks like you have been editing something. '
+ 'If you leave before saving, your changes will be lost.'
}
);
});
</script>
I left the id as it was but changed the script as you suggested jQuery('#are_you_sure > form ').areyousure(
and still can't edit without the page "reloading" with content Are you sure? Yes | No
.
OOPS. yarn installed a different areyousure
by S Loria. I'll start over tomorrow with codeance version.