submit()和onsubmit()的区别

表单提交前验证的问题,如果用submit类型的按钮提交的时候是会正常激发onsubmit事件的。
而用一个普通的button按钮代替 submit按钮,
在提交前触发这个button的onclick事件,在其事件中触发form的 submit事件。问题出现了:
以下是出现相关代码:
<html>   
<head>   
  <script language="javascript" type="text/javascript">   
     
     function verifyAddress(obj)   
     {   
      var email = obj.email.value;   
      var pattern = /^(a)+/;   
      flag = pattern.test(email);   
      if(flag)   
      {   
       alert("Your email address is correct!");   
       return true;   
      }   
      else   
       {   
        alert("Please try again!");   
        return false;   
        }   
      }   
    
    </script>   
  </head>   
  <body>   
   <form id="form1" name="form1" onSubmit="return verifyAddress(this);">   
    <input name="email" type="text">   
    <input type="submit" value="ok" >   
    </form>   
  </body>   
</html>

却发现并没有触发form的 onsubmit方法,而是直接提交了。奇怪了,难道没有这种方式无法结合form的 onsubmit方法吗?
仔细想了想,既然this.form表示form这个对象,那么肯定能获取到form的属性和方法的
,就改成this.form. onsubmit();  成功!
我又查了查手册,原来 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.

意思是说 submit这个方法是不触发 onsubmit时间的,如果想要触发它,需要调用
fireEvent方法。尝试一下:this.form.fireEvent(' onsubmit');哈哈,果然也成功!不过这样不是多此一举吗?呵呵!

就这个小问题也搞了我将近一个小时,不过为了以后不为这个问题烦恼,这也是值得的。
this.form. submit(); //直接提交表单
this.form. onsubmit(); //调用form的 onsubmit方法
this.form.fireEvent(' onsubmit'); //同上,

js submit onsubmit区别相关推荐

  1. button 和 submit 的区别

    表单提交中button和submit的区别 submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了,submit和button,二者都以按钮的形式展现,看起来都是按钮 ...

  2. js和html以及css的区别,html、css、js中的区别与关系

    html.css.js中的区别与关系 2020/04/26 作者: 互盟股份 今天小盟给大家分享的是html.css.js中的区别与关系,相信很多人都不太了解,为了让大家更加了解html.css.js ...

  3. php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别

    if(isset($_POST['submit'])) 它的意思是不是判断是否配置了$_POST['submit'] 这个变量呢?如果有这个变量 在执行其它代码 应该这样用if(isset($_POS ...

  4. html js不触发_图文详解鼠标事件CSS:hover和JS:mouseover的区别

    在工作中为了使页面更具有吸引力,前端开发人员经常会在页面中加上鼠标移入和移出的效果.鼠标移入移出的设置,一般有两种方法,一种是单纯用CSS中的hover伪类,另一种可以用JS 中的DOM事件,即onm ...

  5. js中单引号和双引号的区别(html中属性规范是用双引号,js中字符串规定是用单引号)(js中单引号区别和php很像:单引号快,双引号可转义字符,双引号可解析变量)...

    js中单引号和双引号的区别(html中属性规范是用双引号,js中字符串规定是用单引号)(js中单引号区别和php很像:单引号快,双引号可转义字符,双引号可解析变量) 一.总结 1.html中属性规范是 ...

  6. Processing.js vs P5.js –有什么区别?

    几天前, P5.js被释放了. 这是一个遵循处理原则的用于可视化编程的JavaScript库. 根据这篇文章 : 处理是一种环境/编程语言,旨在使视觉交互式应用程序非常易于编写. 它可以用于从教孩子如 ...

  7. Python同Java同Js语言语法区别之四判断字符串列表字典是否相等

    字符串列表字典是否相等 前言 Python 字符串or数字 列表 字典 总结 Java 字符串 数组 Map 总结 JS 字符串 数组 对象 总结 前言 作为一枚测开工程师,需要的技能是全栈的,项目中 ...

  8. JAVASCRIPT、JSP、JS有什么区别和联系

    JAVASCRIPT.JSP.JS有什么区别和联系 js是javascript的缩写.以下是JSP与JS的区别和联系: 名字:JS:JavaScriptJSP:Java Server Pages 执行 ...

  9. wps中VBA宏与js宏的区别

    VBA宏与js宏的区别,异同 一. JSAPI接口的差异 1. 方法的差异 (1) vb的方法可以不加括号,但jsapi中所有的方法都需要加括号,如果方法不加括号会被js语法判定为属性. vb:复制 ...

最新文章

  1. 数据处理的两个基本问题05 - 零基础入门学习汇编语言42
  2. Windows远程Linux/Ubuntu桌面
  3. sqlmap代理池_sqlmap +外部代理池绕过IP拦截
  4. 关于ios phone APP生命周期的一点理解
  5. springboot中使用RedisTemplate操作redis遇到的问题
  6. 计算机视觉与深度学习 | 使用K均值聚类实现基于颜色的分割(matlab版)
  7. 【static关键字的作用是什么?它用在什么场景?static关键字深度解析来袭】
  8. CVPR 2022 | 针对目标检测的重点与全局知识蒸馏(FGD)
  9. 【资料整理】cisco [acl]
  10. Maven搭建Spring+Struts2+Hibernate项目详解
  11. 简述写基础java小游戏一般思路。
  12. macbook设置充电上限
  13. 【供应链架构day11】京东履约系统的演进之路
  14. 联想笔记本更换硬盘/改Win 7系统安装过程中报0x000000A5蓝屏
  15. 青岛科技大学古典音乐考试需要的资料
  16. “我 33岁,阿里程序员,税后年薪170万,不配征婚?”
  17. 方便快捷给 PDF 加水印
  18. Python 核心编程(第二版)——网络编程
  19. 大数据时代网络安全分析
  20. 自定义顺序/九宫格抽奖

热门文章

  1. 【英语:基础高阶_全场景覆盖表达】K9.口语主题陈述——饮食健康类
  2. 攀登规模化的高峰 - 蚂蚁集团大规模 Sigma 集群 ApiServer 优化实践
  3. [转载] 黄志敏:一条数据新闻是如何用7步生产出来的?
  4. 光电子学教材 马养武
  5. 数据结构与算法(一):什么是数据结构?
  6. mysql association_在mybatis的xml中添加association不生效
  7. eclipse如何attach source?
  8. 计算机微课用什么音乐,有关微课音乐课堂教学
  9. 自动文摘评测方法:Rouge-1、Rouge-2、Rouge-L、Rouge-S
  10. 【ChatGPT4】王老师零基础《NLP》(自然语言处理)第二课