2014-01-30 74 views
1

我在Firefox和IE中使用JavaScript手动提交表单时遇到问题。 Chrome和Opera没有问题。Form.submit无法在FF和IE中工作

当用户提交表单时,我用javascript/jquery拦截它,散列密码并重新提交表单。

我已经尝试了许多使用只有JavaScript的替代变体,这也不工作。

另外问题是这个特定的代码,因为没有它,它完美的作品。

window.onload = main; 


function main() 
{           // Problem with Firefox and IE 
              // Form seems to not submit correctly after the manual submit 
$('#loginForm').submit(function(event) 
    { 
     if (typeof event.originalEvent !== 'undefined') 
     { 
      event.preventDefault(); 
     } 
     else 
     { 
      return; 
     } 


     var passHash = CryptoJS.SHA256($('#password').val()); 
     $('#password').val(passHash.toString()); 

    // document.getElementById('loginForm').submit(); 
     $('#loginForm').trigger('submit'); 
    }); 
} 
+0

您应该使用[就绪](http://api.jquery.com/ready/)不重视的onload。不知道这是否是问题的路径原因? – Liam

+0

这不是[这个问题](http://stackoverflow.com/a/4169636/542251)是吗? – Liam

+0

我不确定,没有测试过,但是,是不是循环提交事件与此脚本?你应该把'preventDefault()'简单地移到你的东西上,然后'返回true'来发送表单或'return false'来不发送它。 –

回答

0

过于复杂,只需要:

function main() 
{           

    $('#loginForm').submit(function(event) 
    { 

     var passHash = CryptoJS.SHA256($('#password').val()); 
     $('#password').val(passHash.toString()); 

     return true; 
    }); 
} 
相关问题