当我执行document.loginform.submit()时,无法在Javascript中手动提交表单

时间:2011-05-29 08:58:13

标签: javascript forms javascript-events form-submit

在下面的代码中,如果我有行hackButton.type ='hidden',我的表单会被提交(这就是我想要的),但我不想隐藏按钮。我有什么选择?我无法将其更改为“提交”或“按钮”,因为它们不起作用。

   var hackButton = document.loginform.submit_login;
   hackButton.type='button';
   var listener = 
   hackButton.addEventListener('click', function() {
      //do things here before form submission                    
     hackButton.type='hidden'; 
     setTimeout("document.loginform.submit()", 3000);
   }, true);

2 个答案:

答案 0 :(得分:1)

尝试setTimeout("document.loginform.submit", 3000);setTimeout(document.loginform.submit, 3000);甚至setTimeout(function() { document.loginform.submit() }, 3000);

答案 1 :(得分:1)

您应该更改逻辑,因为无需在按钮上单击即可提交表单。你可以设置一个标志:

(function() {
    var processed = false;
    var form = document.getElementById('formID');
    form.onsubmit = function() {
        if(!processed) {
            doStuff();
            processed = true;
            form.submit();
            return false;
        }
    };
}());

然后使用普通的可见提交按钮。