JavaScript学习(7)利用表单获取数据
来源:互联网 发布:网络安全法考试题库 编辑:程序博客网 时间:2024/05/16 04:52
1.HTML表单基础
<form>元素常用属性:
method 该属性可以是GET也可以是POST,这是向服务器传送数据的两种方式
action 是CGI脚本,表单数据在提交时被发送。也可以使用mailto:action把表单结果发给一个电子邮件地址
enctype 该属性表示向服务器发送数据时,数据使用的编码方式
accept 表示当文件上传时,列表服务器能正确处理的mime类型
select 定义组合框或者下拉列表框,里面的值<option>定义
textarea 定义多行文本框,其大小尺寸由rows和cols属性来设置
input HTML的输入元素,由type属性确定是哪种控件,其主要属性如下
button 用来产生自定义动作的一般按钮
submit 提交表单按钮
reset 重置表单按钮
hidden 随表单提交的数据,对用户不可见,没有事件处理程序
text 单行文本框
radio 单选文本框
checkbox 复选框
file 文本上传文本框
password 密码输入框
image 图像,与提交按钮功能一样
完整示例:
2.在JavaScript中使用form对象
name 表单的名称
encoding MIME类型,用enctype属性定义
target 指定用来显示表单结果的窗口
reset() 将表单所有输入域置为默认值,无返回值
submit() 指定用来显示表单结果的窗口
2.1forms对象的属性方法 action 表单数据要发送到服务器的URL地址 elements 一个数组,存放表单中可访问的元素 length 表单中的元素数量,不可修改此属性 name 表单的名称 encoding 变淡的MINE类型,用enctype定义 target 指定用来显示表单结果的窗口 reset() 将表单所有输入域重置为默认值,无返回值 submit() 提交表单,但不触发onsubmit事件 2.2获取表单 通常在document对象属性form[]数组元素中可以找到form对象。form对象总是按照它们在文档中出现的顺序存放的。如果要获取页面文档中的第n个表单,可以使用如下代码: var oform =document.form[n-1]; 相应的,document中的form对象还可以通过其表单名字获取,如下: var oform = document.form["formName"]; 在DOM中,还可以使用典型的DOM定位元素的getElementByid(),它只要有传入的表单id即可,如下: var oform = document.getElementById("form1"); 2.3访问表单字段 每个表单的字段,如按钮、文本框、列表框或者其他内容,都包含在表单的element集合中,可以使用它们的name属性或是它们在集合中的位置来访问不同的字段。 var ofirstField = oform.element[0]; var ofirstField = oform.element["textbox1"]; var ofirstField = oform.textbox1; 除了隐藏字段外,其他所有字段都包含有相同的属性、方法和事件,如下 : disable 该属性用来获取或者设置表单控件是否被禁用 form 该属性用来指向字段所在的表单 blur() 该方法可以使表单字段失去焦点 focus() 该方法可以使表单字段获取焦点 当字段失去焦点时,发生blur()事件,执行onblur事件处理函数;当字段获取焦点时,发生focus事件,执行onfocus事件。 3.用表单输入域 3.1使用单行文本框 假设form1是单行文本框所在表单的名称;textbox1是单行文本框的名称,获取文本框的输入值可以采取以下方式: document.form1.textbox1.value; document.forms[i].textbox1.value; document.forms[i].element[j].value; document.form1.element[j].value; text对象常用属性 defaultValue 字符串,<input>标记中value属性指定的值 Form 单行文本框所在表单的名称 Name 单行文本框的名称 Size 单行文本框的宽度 type 单行文本框的类型 value 输入域元素的值 示例 3.2使用密码框 密码框与文本框非常相似,不同的是密码框不管用户输入了什么都只显示星号。在下面的示例中,用户在单行文本框中输入用户名,在密码框中输入密码,当密码框失去焦点时,校验密码的有效性。密码正确时在对话框中显示“密码正确,请进”,否则显示“密码错误,请重新输入”。这只是一个演示功能,实际上验证密码往往在服务器上完成。 示例:
method 表单发送数据的方式,其值为get或post
3.3使用多行文本框
多行文本框也称作文本区域,它对应于HTML的<textarea>标记。与text对象一样,textarea对象也有一组属性、方法和事件。
form 多行文本框所在表单的名称
name 多行文本框的名称
type 多行文本框的类型,为textarea
value 文本区域的取值,为用户输入在该多行文本框中的文字
cols 文本区域的宽度,以字符为单位
rows 文本区域的行数
disabled 控制是否允许用户操作该输入域。true-允许,false-不允许
readonly 指定多行文本框是否为只读。true-只读,false-可以输入和修改文字
3.4使用单选按钮
通过单选按钮的名称属性区分单选按钮位于哪一个组中,同一组的单选按钮拥有相同的name属性。checked属性指定单选按钮是否被选中。单选按钮的对象是一个数组。单选按钮对应于HTML标记<input type = "radio">,在javascript中对象为radio。radio常用方法和时间与text相同。
3.5使用复选框
复选框的对象名称为checkbox,可以用<input>标签定义复选框。复选框只有一个方法:click(),它模拟复选框上的单击。它还有一个事件: onClick,只要复选框被单击,就发生该事件。不论复选框是被选中还是取消选中,需要通过检查checked属性来判断复选框的状态。
3.6使用选择列表
选择列表既可以允许用户从中选择一项,也可以允许用户进行多项选择。<select>标签用于定义文本项目的选择列表。每个<option>标签都定义了一个可能的选项。value属性是返回到程序的名称,<option>之外的文本显示为该选项的文本。<select>标签还有一个可选属性-multiple,它可以指定允许选中多项。浏览器通常把菜单选项的<select>显示为下拉列表,把多项的列表显示为滚动列表。
form 选择列表所在表单的名称
name 选择列表的名称
type 定义<selected>标签默认type值为select-one,可改为select-multiple
length 指定列表项的个数
disable 指定列表项是否可用
multiple 指定是否可选择多个列表项
size 指定列表框中的显示项数,即列表框的高度,该值为1时为下拉列表
option[] 选项数组,每个可选项都在该数组中有一个条目
selectedIndex 返回当前选项的索引值。在多选项列表中,该值返回第一个被选中项
index 数组中的索引值
blur() 从单行文本框中移除键盘输入焦点
focus() 设置单行文本框键盘输入焦点
add(new,old) 将新new插入old之前。如果old为null,则插入尾页
remove(n) 删除第n个列表项,n值从0算起
appendChild(option) 直接添加选项在末尾
3.7按钮
按钮使用<input>标签,并可以使用一下3种不同的类型之一。
submit 提交按钮,可把表单字段中的数据发送给CGI脚本
reset 重置按钮,可把表单字段回复到默认值
button 通用按钮,可调用脚本函数
4.通过邮件发送表单结果
不必使用任何javascript可实现发送表单结果的功能,也可以使用javascript来验证输入信息,需要在表单的action属性中使用mailto:动作。
5.显示表单数据
6.创建自动提示文本框
自动提示文本框是javascript的一种特殊而非常有用的功能。自动提示文本框在用户输入时会检测输入的前几个字符,然后给出一个可帮助用户输入的单词列表,这样就会给用户带来很多方便。
要产生自动提示文本,首先要做的就是写一个方法来搜索字符串数组并返回特定字符开头的所有值。 如下所示
该方法中有两个参数,第一个参数为要匹配的文本,第二个参数则是进行匹配的数组。检查匹配文本sText,若该文本为空,则退出该方法;否则,进入for循环。该循环检测数组中的一个字符,判断是否与匹配文本相等,如果arrValues[i].indexOf(sText) == 0,则表示匹配,然后将这个字符串添加到结果数组arrResult中,最后返回匹配值的数组。
<textarea cols="50" rows="15" name="code" class="javascript:collapse"><mce:script language="javascript"><!-- var intIndex=0;arrList = new Array(); arrList[intIndex++] = " 1sdfsdf.com"; arrList[intIndex++] = " a11sdafs.net"; arrList[intIndex++] = " b22dsafsdf"; arrList[intIndex++] = " c333asdfsadf"; arrList[intIndex++] = " 4444dsafasdf"; arrList[intIndex++] = " dddsfddsafdsaf"; arrList[intIndex++] = " 121213dsafsdaf"; arrList[intIndex++] = " 43213asdfadsf"; arrList[intIndex++] = " dsa3121dasf3"; arrList[intIndex++] = " a213"; arrList[intIndex++] = " 323313"; arrList[intIndex++] = " 3213"; arrList[intIndex++] = " 32213"; arrList[intIndex++] = " dsfsdddd"; arrList[intIndex++] = " ds11dfsfd"; arrList[intIndex++] = " ffdafd"; arrList[intIndex++] = " afdfd"; arrList[intIndex++] = " afd"; arrList[intIndex++] = " baffad"; arrList[intIndex++] = " 2fda2fd"; arrList[intIndex++] = " dasd"; function smanPromptList(arrList,objInputId){ this.style = "background:#E8F7EB;border: 1px solid #CCCCCC;font-size:14px;cursor: default;" if (arrList.constructor!=Array){alert('smanPromptList初始化失败:第一个参数非数组!');return ;} window.onload =function() { arrList.sort(function(a,b){ if(a.length>b.length)return 1; else if(a.length==b.length)return a.localeCompare(b); else return -1; }) var objouter=document.getElementById("__smanDisp") //显示的DIV对象 var objInput = document.getElementById(objInputId); //文本框对象 var selectedIndex=-1; var intTmp; //循环用的:) if (objInput==null) {alert('smanPromptList初始化失败:没有找到"'+objInputId+'"文本框');return ;} //文本框失去焦点 objInput.onblur=function(){ objouter.style.display='none'; } //文本框按键抬起 objInput.onkeyup=checkKeyCode; //文本框得到焦点 objInput.onfocus=checkAndShow; function checkKeyCode(){ var ie = (document.all)? true:false if (ie){ var keyCode=event.keyCode if (keyCode==40||keyCode==38){ //下上 var isUp=false if(keyCode==40) isUp=true ; chageSelection(isUp) }else if (keyCode==13){//回车 outSelection(selectedIndex); }else{ checkAndShow() } }else{ checkAndShow() } divPosition() } function checkAndShow(){ var strInput = objInput.value if (strInput!=""){ divPosition(); selectedIndex=-1; objouter.innerHTML =""; for (intTmp=0;intTmp<arrList.length;intTmp++){ for(i=0;i<arrList[intTmp].length;i++){ if (arrList[intTmp].substr(i, strInput.length).toUpperCase()==strInput.toUpperCase()){ addOption(arrList[intTmp],strInput); } } } objouter.style.display=''; }else{ objouter.style.display='none'; } function addOption(value,keyw){ var v=value.replace(keyw,"<b><font color=red>"+keyw+"</font></b>"); objouter.innerHTML +="<div onmouseover=/"this.className='sman_selectedStyle'/" onmouseout=/"this.className=''/" onmousedown=/"document.getElementById('"+objInputId+"').value='" + value + "'/">" + v + "</div>" } } function chageSelection(isUp){ if (objouter.style.display=='none'){ objouter.style.display=''; }else{ if (isUp) selectedIndex++ else selectedIndex-- } var maxIndex = objouter.children.length-1; if (selectedIndex<0){selectedIndex=0} if (selectedIndex>maxIndex) {selectedIndex=maxIndex} for (intTmp=0;intTmp<=maxIndex;intTmp++){ if (intTmp==selectedIndex){ objouter.children[intTmp].className="sman_selectedStyle"; }else{ objouter.children[intTmp].className=""; } } } function outSelection(Index){ objInput.value = objouter.children[Index].innerText; objouter.style.display='none'; } function divPosition(){ objouter.style.top =getAbsoluteHeight(objInput)+getAbsoluteTop(objInput); objouter.style.left =getAbsoluteLeft(objInput); objouter.style.width=getAbsoluteWidth(objInput) } } document.write("<div id='__smanDisp' style="position:absolute;display:none;" + this.style + "" mce_style="position:absolute;display:none;" + this.style + "" onbulr> </div>"); document.write("<mce:style><!--.sman_selectedStyle{background-Color:#102681;color:#FFFFFF}--></mce:style><style mce_bogus="1">.sman_selectedStyle{background-Color:#102681;color:#FFFFFF}</style>"); function getAbsoluteHeight(ob){ return ob.offsetHeight } function getAbsoluteWidth(ob){ return ob.offsetWidth } function getAbsoluteLeft(ob){ var s_el=0;el=ob;while(el){s_el=s_el+el.offsetLeft;el=el.offsetParent;}; return s_el } function getAbsoluteTop(ob){ var s_el=0;el=ob;while(el){s_el=s_el+el.offsetTop ;el=el.offsetParent;}; return s_el } } smanPromptList(arrList,"inputer") // --></mce:script> <table><tr><td> <input type="text" id="inputer"></td></tr></table></textarea>
- JavaScript学习(7)利用表单获取数据
- JavaScript学习(7)利用表单获取数据
- javaScript学习_利用表单获取数据 .
- javaScript学习_利用表单获取数据 .
- javaScript学习_利用表单获取数据 .
- Javascript - 获取Json结构的表单数据
- Javascript - 获取Json结构的表单数据
- javascript获取表单里的数据
- JavaScript利用XmlHttp异步获取网站数据
- SSH学习之Struts2获取表单数据
- 利用javascript提交表单
- JavaScript获取form表单中的数据以及拼接传参
- javascript获取表单控件
- 利用Servlet读取HTML表单数据-Servlet学习笔记
- JavaScript表单数据验证
- Javascript:数据校验表单
- 关于获取表单数据
- js获取表单数据
- 程序员特有的9个坏习惯
- Shell Script Utility To Read a File Line By Line
- Java串口通信总结
- JAVA读写串口Bean范例
- 虚拟函数实现的机制
- JavaScript学习(7)利用表单获取数据
- 今天装上了VS2010
- 我的激情 怎么了!
- 一位软件工程师的6年总结_I'm a C fans!(转载)
- 定制 SWT/RCP 界面:如何编写一个漂亮的 SWT/RCP 界面
- 儿童腕式手机
- 12个用一条语句写成的有关日期函数
- 三种找每个客户最小订单的写法
- mutex 和 semaphone 的区别 (1)