我在表单末尾有一个提交按钮。
我在提交按钮中添加了以下条件:
onClick="this.disabled=true;
this.value='Sending…';
this.form.submit();"
但是当它移动到下一页时,参数没有传递,而是传递了空值。
我在表单末尾有一个提交按钮。
我在提交按钮中添加了以下条件:
onClick="this.disabled=true;
this.value='Sending…';
this.form.submit();"
但是当它移动到下一页时,参数没有传递,而是传递了空值。
您应该首先提交表单,然后更改提交的值:
onClick="this.form.submit(); this.disabled=true; this.value='Sending…'; "
可能您提交了两次表单。删除this.form.submit()
或添加return false
在最后。
你应该得到 onClick="this.disabled=true; this.value='Sending…';"
在 IE11、FF53、GC58 上测试:
onclick="var e=this;setTimeout(function(){e.disabled=true;},0);return true;"
您需要在禁用按钮onsubmit
的事件<form>
:
<form action='/' method='POST' onsubmit='disableButton()'>
<input name='txt' type='text' required />
<button id='btn' type='submit'>Post</button>
</form>
<script>
function disableButton() {
var btn = document.getElementById('btn');
btn.disabled = true;
btn.innerText = 'Posting...'
}
</script>
注意:如果您有一个具有该required
属性的表单元素,则这种方式将起作用。
提交表单时,禁用的 HTML 表单元素不会与 post/get 值一起发送。因此,如果您在单击后禁用提交按钮并且此提交按钮name
设置了属性,则不会在 post/get 值中发送,因为该元素现在已禁用。这是正常行为。
一来解决这个问题的方法是使用隐藏的表单元素。