表单元素拥有submit方法,同时也具有onsubmit事件句柄,用于监听表单提交。可以使用elemForm.submit();方法触发表单提交。

1、表单元素中出现了name="submit"的元素这种情况下elemForm.submit();将不会触发表单提交,因为表单原始的submit方法将会被覆盖(formElem.submit就是对该元素的引用)。

2、elemForm.submit();不会触发表单的onsubmit事件没有为什么,标准中就是这么规定的。

与此有些类似的是onfocus、onblur和focus()、blur()之间的关系却不同,调用elem.blur()或elem.focus()却会触发onblur和onfocus事件。

这些为我们提供了一个思路,在设计一些UI组件时,需要考虑一些事件在内部调用时是否要触发相关事件。例如Dialog组件,它具有onopen事件,同时返回的对象也会有open()方法,我们这时就必须考虑下open()方法是否需要触发onopen()事件。

3、动态创建表单时遇到的问题经常使用的一种方法如下,他会在表单submit前调用,根据validate()函数的返回值决定是否需要提交表单。

然而,如果要动态地为一个表单添加验证,即HTML代码中没有写onsubmit,而在页面加载后用javascript给这个form加一个handler,问题就 来了。假设我们已经得到了表单的DOM节点,保存在变量elemForm中,一般这样来给它加上handler:

var check = function() {

if ('OK') {

return true;

} else {

return false;

}

};

if (elemForm.addEventListener) {

elemForm.addEventListener("submit", check, false);

} else if (elemForm.attachEvent) {

elemForm.attachEvent("onsubmit", check);

}

问题就出现了:在Firefox和Chrome中"return false;"是不能阻止表单的提交的(在IE中可以),这就是为什么大家在onsubmit属性中要写"return check()",而不仅仅是"check()"。

原因是什么呢?请看ECMAScript Language Binding,其中明确地写着,"Object EventListener: This is an ECMAScript function reference. This method has no return value. The parameter is a Event object",意思就是event listener没有返回值。换一种理解,addEventListener可以为元素绑定多个监听函数,某一个事件监听函数的返回值,不可以作为整个事件的返回值。可以使用下面的方法解决

function check(ev) {

ev = ev || window.event; // Event对象

if (ev.preventDefault) { // 标准浏览器

e.preventDefault();

} else { // IE浏览器

window.event.returnValue = false;

}

}

其实一切的根本都因为IE不支持DOM Level 2。

php onsubmit方法,表单元素的submit()方法和onsubmit事件应用概述相关推荐

  1. 表单元素的submit()方法和onsubmit事件

    表单元素拥有submit方法,同时也具有onsubmit事件句柄,用于监听表单提交.可以使用elemForm.submit();方法触发表单提交. 1.表单元素中出现了name="submi ...

  2. php怎么引用表单元素,表单元素:最全的各种html表单元素获取和使用方法总结...

    表单是网页与用户的交互工具,由一个 元素作为容器构成,封装其他任何数量的表单控件,还有其他任何元素里可用的标签,表单能够包含.....等表单控件元素.表单元素有哪些呢?它包含了如下的这些元素,输入文本 ...

  3. HTML给表单元素赋值,JQuery表单元素取值赋值方法总结

    一.普通文本框的赋值与取值 1.1.1赋值 jQuery 表单元素取值与赋值方法总结 function get(){ var test1 = $("input.test1").va ...

  4. 顶部对齐css表单,vertical-align 表单元素垂直对齐的解决方法

    如下图所示: 于是上网查看了一些网站,发现这个问题是普遍存在的,如下图(FF3.5): 在很多网站涉及到表单的页面中,都存在这种表单元素与提示文字无法对齐的问题.于是打算研究一下这个问题.首先,搜索到 ...

  5. jsp文字上下居中显示_表单元素input、按钮、文字完美垂直居中对齐方法

    本文最终总结出来办法就是要对齐的表单内容(含文字.图片.表单各种元素.label)字体设置为Tahoma,则可以完美的实现对齐(Verdana等字体也可以),其中个别的input元素如radio的pa ...

  6. js入门·表单详解一(修改表单属性,修改表单元素值)

    实在javascript入门·Document对象入门讲解(访问表单,创建新页,获取页标题) 一文中,我们已经把表单的一些基本访问等弄清楚了,下面我们深入的学下表单的属性以及对表单元素的简单操作! 演 ...

  7. table中加表单元素怎么验证_045、DOM编程实例和表单

    1.DOM编程实例1 JavaScript this 关键词指的是它所属的对象. 它拥有不同的值,具体取决于它的使用位置: 在方法中,this 指的是所有者对象. 单独的情况下,this 指的是全局对 ...

  8. HTML表单事件,获取焦点时、失去焦点时、即将获取焦点时、即将失去焦点时、输入值时、选取文本时、表单元素的内容改变时、提交时....

    表单事件简介 onfocus 元素获取焦点时触发 onblur 元素失去焦点时触发 onfocusin 元素即将获取焦点时触发 onfocusout 元素即将失去焦点时触发 oninput 元素获取用 ...

  9. html中表单元素中的单选框,Html表单元素及表单元素详解

    大纲 1.认识表单 2.认识表单元素 3.表单元素的分类 4.表单元素--文本框 5.表单元素button 6.表单元素--单选.多选 7.表单元素--select 8.表单元素--textarea ...

最新文章

  1. mysql java jdbc 如何 update select
  2. org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19
  3. Spring 基于Java配置
  4. linux mysql insert_linux mysql怎么添加数据
  5. 红帽7 su命令与sudo服务
  6. MySQL数据库性能优化的关键参数(转)
  7. 常规RPC通讯过程【转载】
  8. OEM/ODM windows 10 源镜像下载
  9. Java导入导出Excel控件简介
  10. 分享:映像编辑工具Ghostexp
  11. 如何修改鼠标指针的样式
  12. Biotin-PEG-NH2 生物素PEG氨基
  13. 基于ATMEGA16单片机,MQ-3酒精传感器,LCD1602液晶显示的酒精浓度检测阈值报警仪
  14. 如何使用计算机作文600字,计算机比赛作文600字
  15. Mui的APPLOGO数字角标小米问题
  16. Python学习笔记——字符串、列表、元组、字典
  17. pcie转m2装系统win10_M.2接口NVMe SSD固态驱动器安装win10
  18. 大时代、新技术——2020中国技术发展白皮书 附下载地址
  19. requestPermissions读写手机存储权限_2020年新版手机QQ接受文件存在哪里?钛备份闪退等使用教程...
  20. java读写excel表格数据

热门文章

  1. Cannot deserialize session attribute [line] for session
  2. 【附源码】Java计算机毕业设计企业信息网站(程序+LW+部署)
  3. 寒假作死项目之贪吃蛇
  4. 浅谈Javac编译原理
  5. 微软的一道经典逻辑推理题 小明和小强都是张老师的学生,张老师的生日是M月N日
  6. 关于Hexo-Theme-Matery主题的一些个性化修改
  7. node.js 笔记
  8. 【Educoder作业】CC++函数实训
  9. 贪心算法 背包问题 java_贪心算法求解背包问题
  10. 2023性价比高的台灯测评哪些好一点?性价比高的台灯推荐