热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

记录我的旅程9之JavaScriptDom学习笔记

前言:下面我们接着旅程8继续我们的JavaScriptDom征程9。在这篇博客里面我们主要讲述了form对象,以及写JavaScript代码的时候不同浏览器之间的差异

前言:下面我们接着旅程8继续我们的Javascript Dom征程9。在这篇博客里面我们主要讲述了form对象,以及写Javascript代码的时候不同浏览器之间的差异和在Javascript中使用正则表达式的一些知识点,接下来我们做了两个练习来说明了这些知识点,那就是:回车实现Tab跳转和全额文本框。

  1. form对象

(1) 先来写段代码举例说明一下吧

1
2
3
4
5
6
7
8
9
10
11
12
13

 

(2) form对象是表单的Dom对象

(3) 方法:submit提交表单,但是不会触发onsubmit事件。

(4) 实现autopost,也就是焦点离开控件以后页面页面立即提交,而不是只有提交submit按钮以后才提交,当光标离开的时候出发onblur事件,在onblur中调用form的submit方法。

(5) 再点击submit后form的onsubmit事件被触发,在onsubmit中可以进行数据校验,数据有问题,返回false既可以取消提交。

例题说明:

  

1
2
3
12
13
14
15

 

  1. 不同浏览器的差异

(1) 面试题:说说开发项目的时候不同浏览器的不同点,你是怎么解决的?

Appendchild,insertcell,px。

(2) 不同浏览器中对Dom支持的方法不一样。

 1) 获取网页中哪个元素触发了事件,在IE中使用srcElement;在FireFox下面使用target。

 2) 使用Dom获取和更改网页标签元素内文本,在IE中使用innerText,在FireFox中使用textContent。

 3) 动态为网页和元素绑定事件,在IE中绑定事件的方法是:attachEvent,在FireFox中绑定事件的方法是AddEventListener。

(3) 不同浏览器中对CSS的支持不一样,所以出现在IE中显示正常的网页,在FF下面全部乱点了,哀悼网页使用的CSS只有IE支持,FF都不支持。

(4) JQuery之类的框架进行s了封装,将不同的浏览器的差异帮开发人员处理了,开发人员只要调用Jquery方法,Jquery会帮助在不同的浏览器中进行翻译,用JQuery就可以解决不同浏览器上的Dom的不同。

  1. JS中的正则表达式

(1) Javascript中创建正则表达式类的方法:

 1) var regex=new RegExp(”\\d{5}”)或者var regex=^d{5}/

 2) /表达式/是Javascript中专门为简化正则表达式编写而提供的语法,写在//中的正则表达式就不用管转义符了。

(2) RegExp对象的方法

 1) test(str)判断字符串str是否匹配正则表达式,相当于IsMatch。

     var regex=/.+@.+/;

     alert(regex.test(’934532778#qq.com’));

     alert(regex.test(’sss.ss.com’));

 2) exec(str)进行搜索匹配,返回值为匹配结果。

 3) compile编译表达式,提高运行速度。

(3) string对象中提供了一些与正则表达式相关的方法,相当于对于RegExp类的包装,简化调用。

 1) match(regexp),相当于调用exec。

   var s=934532778@qq.com;

   var regex=/(.+)@(.+)/;

     s.match(regex);

alert(regexp.$1);  alert(RegExp.$2);  //取得第一组和第二组的值。

  1. 案例1

回车实现Tab跳转,响应文本框的onkeyDown事件,window.event.keyCode获得用户点击的keycode。(*)

keyCode和ASCII不是完全一致,主键盘的1和小键盘的1的ASCII一样,但是keyCode不一样,回车的KeyCode为13,tab的keyCode为9

1
2
3
4
5
6
7
8
9
10
11

 

  1. 案例2

全额文本框:财务相关系统中涉及到金额的文本框有如下要求:

(1) 进入金额文本框下不使用中文输入法。

(2) 不能输入非数字。

(3) 焦点在文本框中的时候文本框左对齐,焦点离开文本框中的时候文本框右对齐,显示千分位。

注释:(1) 禁用输入法:style=”inne-mode:disabled”。

(2) 禁止键入非法值,只有这些才能够被键入

(3) 禁止黏贴(伟大的tester),大暴力,应该只是禁止黏贴非法值,在onpaste中通过clipboardData.getData(‘text’)取到黏贴板中的值,然后遍历每个字符,看是否是合法的值,如果全部是合法值,才允许黏贴,只要有一个非法值就禁止黏贴。

(4) 添加千分位

   

1
36
37
38
39
40
41 42
43 οnfοcus="this.style.textalige='left'"
44
45 οnblur="this.style.textalige='right'"
46
47 style="ime-mode:disabled" />
48
49

 



推荐阅读
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • JavaScript和HTML之间的交互是经由过程事宜完成的。事宜:文档或浏览器窗口中发作的一些特定的交互霎时。能够运用侦听器(或处置惩罚递次来预订事宜),以便事宜发作时实行相应的 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • 在JavaScript中,函数没有重载的概念,如果声明了多个重名的函数,不管函数的形参个数是否一样,只有最后一个有效。如果调用函数时传入的参数个数与函数定义时的参数个数不符,会出现不同的情况。函数调用时,传入的参数个数少于函数定义时的参数个数,未传入的参数会被当做undefined处理,可能会导致错误。而传入的参数个数多于函数定义时的参数个数,多余的参数不会被使用,但不会报错。 ... [详细]
  • JS实现一键分享功能
    本文介绍了如何使用JS实现一键分享功能,并提供了2019独角兽企业招聘Python工程师的标准。同时,给出了分享到QQ空间、新浪微博和人人网的链接。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
author-avatar
为我有方
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有