我有一个<button>
内部表格。在它的事件处理程序中,我调用了preventDefault
所以单击按钮不会导致表单被提交。
问题是,这会导致按钮保持切换状态,就好像您单击了按住光标的按钮一样。
如何在仍然阻止表单提交的同时恢复按钮切换?
更新:preventDefault
即使我将按钮放在表单之外,问题仍然存在,即它与我错误诊断无关。
为一个误导的问题道歉。
我有一个<button>
内部表格。在它的事件处理程序中,我调用了preventDefault
所以单击按钮不会导致表单被提交。
问题是,这会导致按钮保持切换状态,就好像您单击了按住光标的按钮一样。
如何在仍然阻止表单提交的同时恢复按钮切换?
更新:preventDefault
即使我将按钮放在表单之外,问题仍然存在,即它与我错误诊断无关。
为一个误导的问题道歉。
如果您希望使用<button>
元素阻止表单提交,您可以将其设置type
为button
,即:<button type="button">
。
默认情况下,button
对象的类型是提交,这导致表单提交。您可以通过更改类型来防止这种情况。
通过更改您正在更改按钮的类型,这个新按钮将永远不会提交表单,除非您使用一些 Javascript手动提交它。
你可以试试这个。
function checkForm(){
var form=document.forms[0];
if(form.name.value==''){
alert("enter name, please");
return false;
}
return true;
}
<form><input type="text" name="name"><input type="submit" onclick="return checkForm()"></form>