单击后禁用提交按钮

这是我的代码:

我希望我的onsubmit函数被执行,我希望页面被提交。 在我的网站上,没有提交,也没有function

我试图在这里复制它,但表格似乎被张贴,我的function永远不会被执行… http://jsfiddle.net/V7B3T/1/

我不知道什么时候应该重新激活按钮。

我应该在document.ready或onSubmit函数中执行此操作吗?

因此,如果有人可以修复小提琴:)然后我会将它与我的代码进行比较。 我想:我迷路了

谢谢大家

如果您想在提交之前validation表单或进行任何更改,并且只有在表单有效时才提交,您可以执行以下操作:

 

和JavaScript代码:

 $('#frm').bind('submit', function (e) { var button = $('#send'); // Disable the submit button while evaluating if the form should be submitted button.prop('disabled', true); var valid = true; // Do stuff (validations, etc) here and set // "valid" to false if the validation fails if (!valid) { // Prevent form from submitting if validation failed e.preventDefault(); // Reactivate the button if the form was not submitted button.prop('disabled', false); } }); 

这是一个工作小提琴 。

我肯定会将该代码移动到它所属的外部JS(和CSS)文件中,但这应该有效:

 onclick="this.disabled=true;this.parentNode.submit();" 

由于您正在禁用提交按钮,因此一旦实际的表单提交单击发生,它将被禁用(在此之前发生onclick)。 使用JS提交表单应该可以解决问题。

http://jsfiddle.net/V7B3T/4/

编辑:关于重新启用按钮,这必须在你的OnSubmit()函数运行后发生。

如果您的表单实际上进行了回发,那么您实际上正在更改页面,因此无需担心重新启用按钮(这将在页面加载后发生)。

此外,由于您正在使用jQuery,您可以正确使用它并通过使用jQuery函数附加事件处理程序而不是HTML元素上的onclickonsubmit等属性来分离HTML标记和Javascript。

更新的HTML:

 

更新的Javascript:

 function submitForm(form) { alert("submitted"); } $('#send').click(function(e) { this.disabled = true; }); $('#frm').submit(function(e) { submitForm(this); }); 

工作jsFiddle

你需要将它包装在$(document).ready(function() {...}); 要求在实际页面上使用 – 我把它留下了,因为无论如何jsFiddle执行任何提供的Javascript onLoad。

如果您不想提交页面,这应该可以解决问题:

 onclick="this.disabled=true;return false;"