可以'当我做document.loginform.submit()时,我不会用Javascript手动提交表单

Can't submit the form manually in Javascript when I do document.loginform.submit()

本文关键字:Javascript 提交 表单 document 可以 submit loginform      更新时间:2023-09-26

在下面的代码中,如果我有行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);

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

您应该更改逻辑,因为表单也可以在不点击按钮的情况下提交。你可以设置一个标志:

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

然后使用一个正常可见的提交按钮。