Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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 单击“提交”按钮时忽略onSubmit_Javascript_Html_Forms - Fatal编程技术网

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中删除,并仅在表单元素更改时进行验证!这将停止表单提交,而不是忽略验证。哦,没错,我误解了这个问题