onsubmit return false仍提交表单

博主之前遇到这样的问题,是因为代码有错,改正之后就正常了。

但今天确定代码没错,仍然return false提交表单。

总结网上各路大神的解释:

1.onsubmit的作用是防止form只有一个input时提交表单

2.onsubmit的作用是先提交表单的动作再执行函数,最后无论函数返回正确与否都完成提交动作

具体真相读者自行百度吧。我偏向2,但与我之前的情况相悖,也不完全确定。

做法:

只能麻烦一点将input submit换成input button了。fun里设置表单提交,不用多解释了吧

但是,<button id="submit" onclick="check();">下一题</button>无论funciton里怎么写代码仍然提交

表单,再次查询得知button只有IE才默认是button,其他浏览器和W3C规范都默认是submit

所以正确做法是:<button id="submit" type="button" onclick="check();">下一题</button>

但问题再次出现,form不提交了。再次查询原因,发现这篇博文遇到了同样的问题。原文:

点击提交按钮出现确认提示,但是确认后就没反应了

但是将button的type改为submit却又能提交

于是上jQuery API查找原因,看到以下这段文字顿时明白了:

Additional Notes:

Forms and their child elements should not use input names or ids that conflict with properties of a form, such as submitlength, or method. Name conflicts can cause confusing failures. For a complete list of rules and to check your markup for these problems, see DOMLint.

大概意思是表单和其子元素不宜用一个表单的属性的属性作为name或id的名称,如submit, length, 和 method等,否则会产生冲突,名称冲突可能就会导致这种情况。

对号入座,我确实将button的id设置了submit,改后就好了

原文地址:https://www.cnblogs.com/yanan7890/p/8949818.html

时间: 2024-10-14 14:02:14

onsubmit return false仍提交表单的相关文章

表单提交(三)——阻止Eneter键提交表单

当用户在文本框中进行编辑时,按下键盘Enter键,会触发表单提交.为了防止这种意外,有一种方法就是拒绝所有表单提交, 然后通过单击指定的提交命令按钮才能提交表单. 首先,将"return false"绑定到表单的onsubmit事件,来阻止所有表单提交. 第二,使用input="button"通过onclick事件,以this.form.submit()方法提交,而不会触发onsubmit事件. 所以不能使用jquery方式$("#myForm"

javascripts 实习自动提交表单 onsubmit

html: <form id="formwb" onsubmit="return setPassword();"> <script> document.forms[0].onsubmit(); function setPassword() { //rfb.sendPassword($D('password_input').value); rfb.sendPassword("passw0rd"); return false;

js验证阻止表单提交(表单绑定onsubmit事件)

原始方式: <form action="http://www.cnblogs.com/zixueit/" onsubmit="return check()"> <input type="submit" value="提交" /> </form> <script type="text/javascript"> function check(){ if(!conf

js防止回车(enter)键提交表单

如何防止回车(enter)键提交表单,其实很简单,就一句话.onkeydown="if(event.keyCode==13)return false;"把这句写在from标签里面就好了. 如果在页面中按Enter键会自动提交的话,可以设置返回值防止自动提交如<input id="q" name="q" type="text" onkeypress="javascript:return gosearch();&q

提交表单

这里如果有<input type="image"> 那么直接按这个图像后会提交表单, 如果有OnSubmit会先执行这个函数,如果返回false则不提交表单! 复制代码代码如下: <span style="font-size:14px;"><script language=javascript> function test() { alert("测试!") } </script> <form

解析:使用easyui的form提交表单,在IE下出现类似附件下载时提示是否保存的现象

原文:解析:使用easyui的form提交表单,在IE下出现类似附件下载时提示是否保存的现象 之前开发时遇到的一个问题,使用easyui的form提交表单,在Chrome下时没问题的,但是在IE下出现类似附件下载时提示是否保存的现象. 这里记录一下如何解决的.其实这个现象不光是easyui的form,还有其他一些form插件也是一样的,使用不当就会遇到这个问题. 前台: <!DOCTYPE html> <html> <head> <meta http-equiv=

jquery通过submit()和serialize()提交表单

<script type="text/javascript"> $(function() { $('#form1').submit(function() { //当提交表单时,会发生 submit 事件. //此处可做表单验证 //... ... var postData = $("#form1").serialize();//序列化表单,后台可正常通过post方法获取数据 $.ajax({ type: "POST", url: &q

Validator验证Ajax提交表单的方法

当我们在一些稍微复杂的业务时,可能会遇到需要多个表单form在同一个页面的情况,但是提交一个表单以后不想页面刷新或者跳转,那么我们考虑到的就是Ajax提交表单,那么如何让Jquery的validator插件也可以对异步提交的表单进行验证呢?我们继续往下看. 在这里,我就用网络上的一个例子来说明好了. 下面是一个比较常见的jquery .ajax提交表单的写法 Js代码   $("#submitButton").click(function(){ //序列化表单 var param = 

SpringMVC中的异步提交表单

1.前言 近期在做一个项目,前台框架用的是EasyUI+SpringMVC,因为对SpringMVC不太了解,所以刚開始接触的时候有点吃力,在此通过一个EasyUi中的DataGrid表格来总结一下.  2.SpringMVC中的View向控制器传參 在SpringMVC中,View怎样向控制器传參数呢? 尤其是Form表单提交的时候,详细有例如以下几种方式 2.1 HttpServletRequest 能够通过getParameter()方法来获取前台传过来的參数 2.2 Form表单绑定 /