在Javascript 中,页面上的每一对<form> 标记都解析为一个对象,即form 对象。
可以通过document.forms 获取以源顺序排列的文档中所有form 对象的集合。
如果一个表单对象定义如下: |
<form name="frm1"
method="post" action="login.aspx">
|
获得该表单对象的方法: |
i>document.forms["frm1"];
//根据name属性值
|
ii>document.forms[0];
//根据索引号
|
iii>document.frm1;
//直接根据name值获得对象
|
form 表单应该注意的属性:
elements:获取以源顺序排列的给定表单中所有控件的集合。但是<input type="image" > 对象不在此集合内。
vartxtName=myform.elements[0];//获得表单的第一个元素
|
vartxtName=myform.elements["txtName"];//获得name属性值为"txtName"的元素
|
vartxtName=myform.elements.txtName;//获得name属性值为"txtName"的元素
|
enctype:设置或获取表单的多用途网际邮件扩展(MIME) 编码。
这个属性的默认值为:application/x-www-form-urlencoded
如果要上传文件,则应该设置为:multipart/form-data
form 表单中的<label> 标记:
每一个表单元素的文字描述都应该使用<label> 标记!
该标记用于将文字绑定到对应的表单元素上,它的for 属性指定它所要绑定的表单元素id 值。绑定后单击该文字,鼠标将聚焦到对应的文本框中或选中对应的选项。
若安装了某些桌面主题,某些表单元素还会变换颜色来予以提示,这大大提高了用户体验。
示例代码:
<form method="post"
name="frm1">
|
<label for="txt">点我将聚焦到文本框</label>
|
<input type="text"
id="txt" name="myname">
|
<br/>
|
<label for="rdo">点我将选中单选框</label>
|
<input type="radio"
id="rdo" name="male"/>
|
<br/>
|
<label for="cbo">点我将选中复选框</label>
|
<input type="checkbox"
id="cbo" name="hobby">
|
</form>
|
效果如下:
点我将聚焦到文本框
点我将选中单选框
点我将选中复选框
注意:
i > 每个表单元素应当尽量使用<label>标签来提高用户体验;
ii > 每个表单元素应当分配 name 属性 和
id 属性。
name 属性:用来将数据提交到服务器;
id 属性:用来在客户端做相应的操作;如:<label>标签的绑定、CSS 选择器的使用等。
( name 属性和 id 属性应该尽可能地使用相同的或相关的值。)
在客户端,Javascript 对表单及表单元素的操作,更青睐于使用其name
属性。
因为,对于某些特定的表单元素(如:单选按钮等),使用其name 属性更易于获得元素值,也更方便向服务器传送数据!
Javascript 操作form 表单元素,比较少用的属性:
defaultChecked 设置或获取复选框或单选钮的状态。
defaultValue 设置或获取对象的初始内容。
disabled 设置或获取控件的状态。
提交表单
提交表单的示例:
<form name="frm"
method="post" action="javascript:alert('提交成功!');">
|
<input type="button"
value="提交功能" onclick="document.forms['frm'].submit();">
|
<input
type="button" value="禁用反复提交" onclick="this.disabled=true;this.form.submit();">
|
</form>
|
效果如下:
注意:
i > 如果使用submit( ) 方法来提交表单,则不会触发<form> 表单元素的onsubmit 事件,
这是与用<input type="submit">提交元素不同的地方;
ii > 可以在按钮的提交或点击事件中,使用disabled 属性来禁用用户反复点击提交按钮的行为,
减少服务器的响应负担;
设置文本框
i > 控制文本框的字符个数
<script language="javascript"> |
functionLessThan(_textArea){
|
//返回文本框字符个数是否符号要求的boolean值
|
return_textArea.value.length<_textArea.getAttribute("maxlength");
|
} |
</script> |
<label for="name">文本框:</label>
|
<input type="text"
name="name" id="name"
value="姓名" maxlength="10"></p>
|
<br>
|
<label for="comments">多行文本框:</label>
|
<textarea name="comments"
id="comments" cols="40"
rows="4" maxlength="50"
onkeypress="returnLessThan(this);"></textarea>
|
注意:多行文本框<textarea> 中的maxlength 为自定义属性;如果在<textarea> 中输入字符时,换行也算一个字符;
ii > 鼠标经过时,自动选中文本框
<script language="javascript"> |
window.onload=function(){
|
vartxtName=document.getElementsByName("myName")[0];
|
txtName.onmouseover=function(){
|
this.focus();
|
};
|
txtName.onfocus=function(){
|
this.select();
|
};
|
} |
</script> |
<INPUT TYPE="text"
NAME="myName" value="默认值被选中"/>
|
实现了行为与结构的分离。
设置单选按钮
获取选中的单选按钮 & 设置单选按钮被选中
<scriptlanguage="javascript">
|
//获取选中项
|
functiongetChoice(){
|
varoForm=document.forms["myForm1"];
|
//radioName是单选按钮的name属性值
|
varaChoices=oForm.radioName;
|
//遍历整个单选项表
|
for(i=0;i<aChoices.length;i++)
|
if(aChoices[i].checked)
|
break;//如果发现了被选中项则退出
|
alert("您选中的是:"+aChoices[i].value);
|
} |
//设置选中项
|
functionsetChoice(_num){
|
varoForm=document.forms["myForm1"];
|
//radioName是单选按钮的name属性值
|
oForm.radioName[_num].checked=true;
//其它选项的checked值会自动设置为false
|
} |
</script> //调用代码 <input type="button" value="获取选中项" onclick="getChoice();" /> <input type="button" value="设置第1项被选中" onclick="setChoice(0);" />
|
需要保证同一组单选按钮的name 属性值相同即可。
设置复选框
设置复选框的“全选”、“全不选”及“反选”功能
<scriptlanguage="javascript">
|
functionchangeBoxes(_action){
|
varmyForm=document.forms["myForm1"];
|
//myCheckbox为所有复选框的name属性值
|
varoCheckBox=myForm.myCheckbox;
|
|
for(vari=0;i<oCheckBox.length;i++)
//遍历每一个选项
|
if(_action<0)//反选
|
oCheckBox[i].checked=!oCheckBox[i].checked;
|
else
|
//_action为1是则全选,为0时则全不选
|
oCheckBox[i].checked=_action;
|
} |
</script>
|
<formname="myForm1">
|
<inputtype="checkbox"name="myCheckbox">aa
|
<inputtype="checkbox"name="myCheckbox">bb
|
<inputtype="button"value="全选"onclick="changeBoxes(1);"/>
|
<inputtype="button"value="全不选"onclick="changeBoxes(0);"/>
|
<inputtype="button"value="反选"onclick="changeBoxes(-1);"/>
|
</form>
|
设置下拉列表框
下拉列表框的multiple 属性用于设置或获取下拉列表框是否可以选中多个选项。
下拉列表框默认只能选中一项,若要设置为可以选中多项,则<select multiple = "multiple"> 即可。
type 属性:javascript 语言根据type 属性的值获得下拉列表框select 控件的类型。
type 属性的值为:select-multiple 或 select-one (注意:下拉列表框的类型由multiple 属性控制)
i > 查看下拉列表框的选项(单选项 & 多选项)
<scriptlanguage="javascript">
|
functiongetSelectValue(_myselect){
|
varoForm=document.forms["myForm1"];
|
//根据参数(下拉列表框的name属性值)获得下拉菜单项
|
varoSelectBox=oForm.elements[_myselect];
|
//判断是单选还是多选
|
if(oSelectBox.type=="select-one"){
|
variChoice=oSelectBox.selectedIndex;
//获取选中项
|
alert("单选,您选中了"+oSelectBox.options[iChoice].text);
|
}
|
else{
|
varaChoices=newArray();
|
//遍历整个下拉菜单
|
for(vari=0;i<oSelectBox.options.length;i++)
|
if(oSelectBox.options[i].selected)//如果被选中
|
//压入到数组中
|
aChoices.push(oSelectBox.options[i].text);
|
//输出结果
|
alert("多选,您选了:"+aChoices.join());
|
}
|
} |
</script>
|
<formmethod="post"name="myForm1">
|
<selectid="mysel"name="mysel"multiple="multiple"style="height:60px;">
|
<optionvalue="a">AA</option>
|
<optionvalue="b">BB</option>
|
<optionvalue="c">CC</option>
|
</select>
|
<inputtype="button"onclick="getSelectValue('mysel')"value="查看选项"/>
|
ii > 添加下拉列表框的选项
追加新选项到末尾
<scriptlanguage="javascript">
|
functionAddOption(Box){//追加选项到末尾
|
varoForm=document.forms["myForm1"];
|
varoBox=oForm.elements[Box];
|
varoOption=newOption("乒乓球","Pingpang");
|
oBox.options[oBox.options.length]=oOption;
|
} |
</script>
|
插入新选项到指定位置
<scriptlanguage="javascript">
|
functionAddOption(_select,_num){
|
varoForm=document.forms["myForm1"];
|
varoBox=oForm.elements[_select];
|
varoOption=newOption("text值","value值");
|
//兼容IE7,先添加选项到最后,再移动
|
oBox.options[oBox.options.length]=oOption;
|
oBox.insertBefore(oOption,oBox.options[_num]);
|
} |
</script>
|
<inputtype="button"value="添加乒乓球"onclick="AddOption('myselect',1);"/>
|
注意:如果直接使用insertBefore( ) 方法插入选项,将会在IE 中出现一个空选项的bug。为了解决IE 的这个bug ,只能使用先追加新选项到末尾,然后再使用insertBefore(
) 方法将其移动到相应的位置。
类似这样:为了跳过浏览器的某些bug 或限制,实现预定目的的小技巧,通常称之为hack 。
iii > 替换某一选项
<scriptlanguage="javascript">
|
//替换选项
|
functionReplaceOption(_select,_num){
|
varoForm=document.forms["myForm1"];
|
varoBox=oForm.elements[_select];
|
varoOption=newOption("text值","value值");
|
oBox.options[_num]=oOption;//替换第_num个选项
|
} |
</script>
|
<inputtype="button"value="替换选项"onclick="ReplaceOption('selName',1);"/>
|
通过oBox.options[_num] = oOption 直接将创建的新选项替换掉指定位置的选项。
iv > 删除某一选项
<scriptlanguage="javascript">
|
functionRemoveOption(_select,_num){
|
varoForm=document.forms["myForm1"];
|
varoBox=oForm.elements[_select];
|
oBox.options[_num]=null;
//删除选项
|
} |
</script>
|
</head>
|
<body>
|
<selectid="mysel"name="mysel"multiple="multiple">
|
......
|
<inputtype="button"value="删除选项"onclick="RemoveOption('mysel',1);"/>
|
直接通过oBox.options[_num] = null 删除选项。
分享到:
相关推荐
HTML表单是网页设计中不可或缺...总之,创建美观且功能齐全的HTML表单需要结合HTML、CSS和JavaScript的知识。通过合理的设计和实现,我们可以提供一个既直观又易于使用的表单,提升用户在网站或应用程序上的交互体验。
下面将详细介绍关于form表单的相关知识点。 1. **HTML表单基础** HTML中的`<form>`标签用于定义表单,可以包含各种输入控件,如文本框、密码框、复选框、单选按钮、下拉菜单等。例如: ```html <form action=...
本文将深入探讨"form表单拖拽功能"这一主题,结合提供的文件"FormbuildV1.0",详细解释其背后的技术实现和相关知识点。 首先,我们需要理解HTML表单的基础结构。一个基本的HTML表单通常由`<form>`标签定义,里面...
1. **表单提交(Form Submission)**:HTML表单通过`<form>`元素定义,其中包含`<input>`、`<select>`、`<textarea>`等元素来获取用户输入。默认情况下,表单提交会引发页面重定向,使用`<form>`的`action`属性指定...
本文档中将分享一个如何在Vue.js中获取form表单值的示例,使用的是Element-ui组件库以及axios库来发送HTTP请求。下面将详细介绍这些知识点。 ### Vue.js中的表单数据绑定 Vue.js提供了一种简单的方式来实现数据的...
在网页设计和开发中,`form` 表单是用户与服务器进行数据交互的重要组成部分,而日期输入控件则是表单中常见的一种元素,用于收集用户的日期或时间信息。在HTML5中,引入了内置的日期输入类型,使得创建和处理日期...
本文将深入探讨“简单的form表单模板”及其相关知识点。 首先,我们需要了解HTML中的`<form>`标签。它是创建表单的基础,用于定义用户输入数据的区域。例如: ```html <form action="submit.php" method="post"> ...
在这个例子中,我们将深入探讨如何在微信小程序中使用`form`表单来获取用户输入的数据。 一、`<form>`组件介绍 在微信小程序中,`<form>`组件用于创建一个表单容器,它允许用户输入数据并通过提交操作将数据传递到...
在本章节中,我们将深入探讨HTML5表单的相关知识点。 #### 二、实验目的 1. **了解和使用HTML5的表单**:HTML5的表单相比之前的版本,在功能和灵活性上都有显著提升。学习如何使用这些新特性可以极大地提高表单...
在本资源中,"039 漂亮的登录界面 单页form表单【html登录注册页面代码】" 提供了一个简单的HTML登录界面设计示例,它使用了单页(Single-Page Application, SPA)的概念,并结合了HTML、CSS技术来创建一个吸引人的...
#### 一、HTML5与CSS3在Form表单中的应用 在当前Web开发中,HTML5与CSS3是构建交互式和美观网页的关键技术。本案例展示了一个使用HTML5和CSS3创建的精美Form表单。 #### 二、基本结构与样式设置 1. **文档类型...
在本篇内容中,我们将详细探讨如何使用jQuery来获取form表单中input元素的值,包括文本框、复选框、单选按钮等不同类型input元素的值获取方法。通过jQuery提供的val()方法和attr()方法,我们可以轻松获取或设置input...
在Web开发中,HTML表单是用于收集用户输入信息的一种常见方式。通常情况下,表单由多个输入字段组成,如文本框、下拉列表、复选框等,并通过按钮触发提交操作,将数据发送给服务器端处理。 ##### 2. 使用 ...
本文将详细讲解如何实现这个功能,主要涉及HTML表单、Servlet、MVC框架(如Spring MVC)以及文件处理的相关知识。 1. HTML表单设置: 在HTML中,要允许用户选择多个文件进行上传,我们需要在`<input>`标签中添加`...
### JSP 页面中 JS 调用 Form 表单的值的方法 在 Web 开发中,JSP(Java Server Pages)是一种广泛使用的服务器端技术,它允许开发者将动态内容嵌入到静态 HTML 页面中。本篇文章主要介绍如何在 JSP 页面中通过 ...
在提供的代码片段中,可以看到一个简单的HTML页面包含了一个form表单和几个输入元素。JavaScript代码主要集中在处理Ajax请求上,包括创建XMLHttpRequest对象、设置请求、发送请求以及处理响应。 ### 四、注意事项 ...
这个工具允许用户无需编程知识,就能通过简单的拖拽操作创建自定义的表单,适用于各种场景,如数据收集、问卷调查、注册登录等。 表单构建工具的核心功能包括: 1. **可视化编辑**:formbuilder提供了可视化的表单...
jQuery中Form相关知识汇总为广大开发人员提供了一系列处理表单的技巧和方法。其中,涉及到了对单行文本输入框的焦点事件处理以及多行文本框高度调整的功能。 首先,处理单行文本输入框的焦点事件。焦点事件包括两个...