Javascript 单击“提交”按钮时忽略onSubmit
我在一个表单中指定了Javascript 单击“提交”按钮时忽略onSubmit,javascript,html,forms,Javascript,Html,Forms,我在一个表单中指定了onSubmit=“validate()”,但是如果单击了提交按钮,我想忽略验证。是否有一种跨浏览器的好方法可以检测是否单击了提交按钮,从而忽略验证?为什么不使用按钮而不是提交,并在单击按钮时设置其操作?这样,您就可以控制是否要验证、提交或其他任何您喜欢的内容。您尝试过这个吗 <input type="submit" onclick="void(window.validate=function(){return true;})" value="Submit" />
onSubmit=“validate()”
,但是如果单击了提交按钮,我想忽略验证。是否有一种跨浏览器的好方法可以检测是否单击了提交按钮,从而忽略验证?为什么不使用按钮而不是提交,并在单击按钮时设置其操作?这样,您就可以控制是否要验证、提交或其他任何您喜欢的内容。您尝试过这个吗
<input type="submit" onclick="void(window.validate=function(){return true;})" value="Submit" />
您可以尝试使用一个仅返回false,或从提交按钮处理程序中防止默认值仅当用户提交表单时才会触发提交事件;如果通过JS提交,则不会
因此:
<input type="submit" onclick="this.form.submit(); return false;">
如果JS不可用,这就像一个普通的提交按钮…onsubmit仍然无法启动,因为它也需要JS
(与往常一样,为了清晰起见,本例不包括使用JS而不是内在事件属性附加事件)按钮对于非javascript用户不会降级。是否创建动态按钮?用它代替你的提交。@geocar我们真的需要认为按钮不适用于非js用户吗;我们正在谈论:onSubmit=“validate()”?输入类型=按钮无法为非js用户提交表单,而输入类型=提交则可以。非js用户只需忽略onsubmit=”“处理程序即可。这取决于提问者是否关心javascript被禁用或未呈现的人的可用性。首先,永远不要做“onThis=that()”。用不显眼的方式做。你到底想要什么?如果要忽略验证,请将其从onSubmit中删除,并仅在表单元素更改时进行验证!这将停止表单提交,而不是忽略验证。哦,没错,我误解了这个问题