Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery form submitting in firefox

Please, help me with one problem. I have this code, for submitting form via anchor.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $("#btnLogout").click(function() {
                $('#frm').submit();
                return false;
            });
        });
    </script>
</head>
<body>
    <form id="frm" action="/" method="post">
        <div>
            <p>
                <label for="txtLogin">Login:</label>
                <input name="txtLogin" />
            </p>
        <div>
           <a id="btnLogout" href="javascript:void(0)">выход</a>  
        </div>
        </div>
    </form>
</body>
</html>

It works fine on IE7,8, Opera and Google Chrome, but does not work on FireFox 3.5. I can not understand why it does not work?

like image 518
msi Avatar asked Dec 07 '22 04:12

msi


2 Answers

Based on the answer to the same question here: Jquery Form.submit() on Chrome works but not in Firefox

Add the form object to the DOM before submitting:

$("#actionform").appendTo("body").submit();
like image 133
Jason Avatar answered Dec 19 '22 03:12

Jason


According to this , manual submit with jQuery doesn't work under Firefox when the form has been added trough Javascript

The solution consists to clone the form and submit it :

$('#myform').on('submit', function(e) {
   e.preventDefault();
   if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {
     $(this).clone().appendTo("body").submit(); // FF only
   } else {
     this.submit(); // works under IE and Chrome, but not FF  
   }

});
like image 42
younes0 Avatar answered Dec 19 '22 05:12

younes0