学习第九天(2019-11-22)

你说的曾经没有我的故事 提交于 2019-12-05 07:42:21

第十四章 表单脚本

一、表单的基础知识

   在HTML中,表单是由<form>元素来表示的,在JavaScript中,表单对应的是HTMLFormElement 类型。HTMLFormElement 继承了 HTMLElement,因而与其他HTML元素具有相同的默认属性。不过,HTMLFormElement有自己独有的属性和方法。 

   在javaScript中可以提交表单、重置表单以及操作表单的字段。

 下面是一个例子:

   假设有一个文本框,我们只允许用户输入数值。此时,可以利用 focus 事件修改文本框的背景颜色,以便更清楚地表明这个字段获得了焦点。可以利用 blur 事件恢复文本框的背景颜色,利用change事件在用户输入了非数值字符时再次修改背景颜色。

   实现代码:

 1 <html>
 2 <head>
 3 </head>
 4 <body>
 5      <form method="post" id="myForm">表单<br>
 6         <input type="text" size="20" maxlength="50" value="mytext">
 7      </form>
 8      <script type="text/javascript" src="myscript.js"></script>
 9 </body>
10 </html>
 1 var EventUtil = {
 2     addHandler: function(element,type,handler){
 3         if(element.addEventListener){
 4             element.addEventListener(type,handler,false);
 5         }else if(element.attachEvent){
 6             element.attachEvent("on"+type,handler);
 7         }else{
 8             element["on"+type]=handler;
 9         }
10     },
11     removeHandler: function(element,type,handler){
12         if(element.removeEventListener){
13             element.removeEventListene(type,handler,false);
14         }else if(element.detachEvent){
15             element.detachEvent("on"+type,handler);
16         }else{
17             element["on"+type] = null;
18         }
19     },
20     getEvent : function(event){
21         return event ? event : window.event;
22     },
23     getTarget:function(event){
24         return event.target||event.srcElement;
25     },
26     preventDefault:function(event){
27         if(event.preventDefault){
28             event.preventDefault();
29         }else{
30             event.returnValue=false;
31         }
32     },
33     stopPropagation:function(event){
34         if(event.stopPropagation){
35             event.stopPropagation();
36         }else{
37             event.cancelBubble=true;
38         }
39     }
40 };
41 
42 var textbox = document.forms[0].elements[0]; //取得text元素
43 
44 EventUtil.addHandler(textbox,"focus",function(event){ //当前字段获得焦点时触发
45     event = EventUtil.getEvent(event);
46     var target = EventUtil.getTarget(event);
47     if(target.style.backgroundColor!="red"){
48         target.style.backgroundColor = "yellow";
49     }
50     textbox.select();//选中文本框中的所有文本
51 });
52 EventUtil.addHandler(textbox,"blur",function(event){ //当前字段失去焦点时触发
53     event = EventUtil.getEvent(event);
54     var target = EventUtil.getTarget(event);
55     if(/[^\d]/.test(target.value)){ //为非数值时
56         target.style.backgroundColor = "red";
57     }else{
58         target.style.backgroundColor = "";
59     }
60 });
61 EventUtil.addHandler(textbox,"change",function(event){ <input>和<textarea>元素,在它们失去焦点且 value 值改变时触发;对于 <select>元素,在其选项改变时触发。 
62     event = EventUtil.getEvent(event);
63     var target = EventUtil.getTarget(event);
64     if(/[^\d]/.test(target.value)){
65         target.style.backgroundColor = "red";
66     }else{
67         target.style.backgroundColor = "";
68     }
69 });

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!