I have got help here to put together this code. And it works perfect in Chrome, Safari and in Internet Explorer. But in Firefox it redirects to a sub-url (probably not right word for it...)
I have the script on a page:
http://example.com/test

And I want to redirect to a new page based on the value the user chooses (and then click the button): So if I choose option #2 I want to get to here: http://example.com/my-test-2
It works in the other browsers, but not in Firefox. In Firefox it in stead redirects to: http://example.com/test?redirect=http%3A%2F%2Fexample.com%2Fmy-test-2 which of course doesn't lead anywhere.
The HTML is loaded in a jquery and Bootstrap environment, and I do use modals on that page. I just mention this in case there is a know error for Firefox using those framworks.
Here is the HTML:
I want to choose:
<form  id="mychoice">
    <input type="radio" name="redirect" value="http://example.com/my-test-1"><span>1</span><br>
    <input type="radio" name="redirect" value="http://example.com/my-test-2"><span>2</span><br>
    <input type="radio" name="redirect" value="http://example.com/my-test-3"><span>3</span><br>
    <input type="radio" name="redirect" value="http://example.com/my-test-4"><span>4</span><br>
    <input type="radio" name="redirect" value="http://example.com/my-test-5"><span>5</span><br /><br />
    <input type="submit" value="See result">
</form>
The javascript:
$(document).ready(function(){    
    $("#mychoice").submit(function(){
        event.preventDefault();
        var loc = $('input[name="redirect"]:checked').val();
        window.location = loc;
        return false;    
    });
});
Here is a fiddle
Do you see the reason why Firefox behaves like this?
If of interest: I work on a Mac OSX 10.10.2 with Chrome 42.0.2311.90 (64-bit), Firefox 37.0.2 and Windows 8.1 IE 11.09600.17728
Options/Preferences -> Advanced -> General : Accessibility : "Warn me when web sites try to redirect or reload the page"
To enable cookies, go to Options > Privacy. If Firefox is set to remember history, cookies are already enabled. To enable JavaScript, go to about:config, search for javascript. enabled, and change it to "true."
You've used preventDefault(), but haven't actually passed the event in to the handler. Also note that using window.location.assign() is better practice. Try this:
$("#mychoice").submit(function(event) { // < 'event' is the parameter passed to the func
    event.preventDefault();
    window.location.assign($('input[name="redirect"]:checked').val());
});
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With