Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么禁用提交按钮会影响表单提交?_Javascript_Html - Fatal编程技术网

Javascript 为什么禁用提交按钮会影响表单提交?

Javascript 为什么禁用提交按钮会影响表单提交?,javascript,html,Javascript,Html,我有一个简单的小表单,需要几秒钟来处理。我想做两件事: 禁用提交按钮,这样用户就不会多次点击它 处理表单时显示进度条。 我有以下资料: <script type="text/javascript"> function myFunction() { document.getElementById('submit').disabled = true; document.getElementById('prog').style.display = 'blo

我有一个简单的小表单,需要几秒钟来处理。我想做两件事:

禁用提交按钮,这样用户就不会多次点击它 处理表单时显示进度条。 我有以下资料:

<script type="text/javascript">
    function myFunction() {
      document.getElementById('submit').disabled = true; 
      document.getElementById('prog').style.display = 'block';
    }
</script>

<form method="POST" action="/page" onsubmit="myFunction();">
  <input type="text" />
  <div id="prog" class="progress" style="display:none;">
    <div class="bar" style="width: 100%"></div>
  </div>
  <button id="submit" type="submit">Submit</button>
</form>
但是,当我提交表单时,我看到submit按钮被禁用,进度条显示出来,但是表单实际上没有得到处理。如果我注释掉了禁用提交按钮的部分,表单将正常提交,我会看到进度条


为什么禁用“提交”按钮会导致表单提交出错?

您可以将按钮类型从“提交”更改为“按钮” 并且,通过javascript函数单击按钮提交表单

请尝试此代码

函数myFunction{ document.getElementById'submit'.disabled=true; document.getElementById'prog'.style.display='block'; document.getElementById'myForm'。提交; } 提交
你发布的代码与你描述的不一样。请发布一个完整的例子来重现这个问题。@j08691您不能只在JSFIDLE上运行它,因为我的实际表单需要几秒钟来处理。另外,jsfiddle不允许重定向到/page。这就是我没有创建JSFIDLE的原因。不要给按钮一个submit的ID,它会覆盖表单的submit方法,给它一些其他的名称并不能解决您的问题。这个答案有两个严重的问题:一个名为submit的表单控件屏蔽了表单的submit方法,因此调用form.submit会抛出一个错误。大多数浏览器也对ID执行相同的操作,但不是全部。此外,表单可以在不单击按钮的情况下提交,因此在单击按钮时应该运行的内容不会被提交。OP无法发布显示所述行为的代码,此答案既不描述问题,也不描述海报对其的猜测,也不说明为什么应该修复它。