FORM表单中onclick()、submit()与onsubmit()的问题

最近遇到一次处理form数据的过滤,采用了button的onclick事件来检查,发现return false后表单仍然提交了。

于是仔细研究了下onclick、onsubmit、submit集合函数之间的关系和区别

1
2
3
4
5
6
7
8
9
10
11
12
13
onsubmit:
You can override this event by returning false in the event handler.
Use this capability to validate data on the client side to prevent invalid data from being submitted to the server.
If the event handler is called by the onsubmit attribute of the form object,
the code must explicitly request the return value using the return function,
and the event handler must provide an explicit return value for each possible code path in the event handler function.
The submit method does not invoke the onsubmit event handler.
 
submit:
The submit method does not invoke the onsubmit event handler.
Call the onsubmit event handler directly.
When using Microsoft? Internet Explorer 5.5 and later,
you can call the fireEvent method with a value of onsubmit in the sEvent parameter.

首先生成一个form

1
2
3
4
<form action="#" method="POST" name="A" onsubmit="return X();">
<input type="text" value="" />
<input onclick="Y()" type="submit" value="提交" />
</form>

自己写X()、Y()函数,我们会发现,这几个函数的执行顺序

1) onclick: Y();

2) onsubmit: X();

3) submit();

也就是说

只要 onclick 未 return false 那么就继续执行 onsubmit

只要 onsubmit 未return false 那么表单就被提交出去了

另外一点写法上注意一定要 “return X();” 才能取得函数的返回值,否则只是调用函数,返回值未被传递

正确写法:
<input type=submit onclick=”return X();”>
//X() 返回false后,form的submit会被终止

错误写法:
<input type=submit onclick=”X()”>
//X() 返回false后未传递给onclick事件,form的submit会继续

最新文章

  1. update
  2. c#调用c++动态链接库的问题
  3. [ASP.NET]分析MVC5源码,并实现一个ASP.MVC
  4. CSS动态伪类选择器温故-3
  5. svn 切换默认用户名
  6. JMeter性能测试介绍学习一
  7. Python的OO思想
  8. nodejs -formidable模块实现图片上传。
  9. [BUGFIX]__import_pywin32_system_module__
  10. JavaEE中遗漏的10个最重要的安全控制
  11. vue.js的devtools安装
  12. Javscript轮播 支持平滑和渐隐两种效果(可以只有两张图)
  13. 重点+超详细:ajax和json及案例
  14. 线段树(hdu 1556)
  15. 开心的金明 NOIP 2006 普及组
  16. java 虚拟机与并发处理几个问题简要(一)
  17. SEO之网站关键词的优化 :首页,内页关键字,长尾关键字
  18. C语言程序设计第四次作业-选择结构
  19. 佛祖镇楼,BUG避易
  20. day21双下方法,源码相关,异常处理

热门文章

  1. 从工厂流水线小妹到Google上班程序媛,看完后,我跪服了!
  2. python 项目实战之随机杀死程序
  3. 代码审计和动态测试——BUUCTF - 高明的黑客
  4. Guava集合工具
  5. Re3 : Real-Time Recurrent Regression Networks for Visual Tracking of Generic Objects
  6. Python2.7 删除前N天日志文件
  7. HIVE出现Read past end of RLE integer from compressed stream Stream for column 1 kind LENGTH position: 359 length: 359 range: 0错误
  8. LeetCode 100. Same Tree (判断树是否完全相同)
  9. Spring IoC 的实现机制
  10. shell基础知识7-字段分隔符与迭代器