3

I have a form in a bootstrap modal that is being processed using ajax. If the form validates it closes the modal or shows the validation errors as expected. However, I would like to redirect the user after the modal hide animation is finished if a condition is met based on a boolean held in the controller. Although the conditional wouldn't work as written, it lets you see what it is I am trying to accomplish:

$(document).ready(function() {
  $('#modal-window').modal({remote: true});
  $('#modal-window').modal('show');
  $('#modal-window').on('hidden', function(){
    var saved = <%= @bool %>;
    if(saved == "true"){
      $(window.location.replace("<%= some_url %>"));}
    });
})
topher
  • 301
  • 1
  • 5
  • 14

3 Answers3

3

You're setting saved to a boolean (probably - whatever is in your @bool var)

var saved = <%= @bool %>;

but then compare to the string "true"

if(saved == "true"){

so, if you replace the second line with

if(saved){

it'll work

kr1
  • 7,225
  • 1
  • 26
  • 29
  • whoops. thanks for pointing out the mistake. shweta's works too but this had a little more explanation. – topher Jan 31 '13 at 13:20
1

replace

var saved = <%= @bool %>;

with

var saved = "<%= @bool %>";
shweta
  • 8,019
  • 1
  • 40
  • 43
0

Where do you have this code posted? If your form is under index.html.erb then when using remote: true, you will want to have a index.js.erb file that will serve the javascript that you're looking to run in your example. Also, don't forget to escape the return URL with j like <%=j some_url %>.

kobaltz
  • 6,980
  • 1
  • 35
  • 52
  • Currently this in a – topher Jan 31 '13 at 03:51
  • I'm new to js and i just don't know how to get a rails variable passed into the script above in order to make the conditional work. – topher Jan 31 '13 at 03:54