2014-01-30 76 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; 
    }); 
} 
相關問題