前端表单编程

什么是表单元素

在HTML中表单元素指form标签,它的作用是把用户输入或者选择的信息提交给后台。

<form action="#" method="post" enctype="application/x-www-form-urlencoded">
</form>

form标签的属性:

action:表单提交地址
method:提交方式
enctype:数据传递的方式,这是默认的方式,即以键值对的方式提交。

获取表单元素

<form id="fm" name="form1">
</form> <script>
// 方法1
let fm = document.getElementbyId("fm");
//方法2
let fm = document.forms[0];
//方法3
let fm = document.forms["form1"]; //其中的form1 可以是id或者name 的值
//方法4
let fm = document.form1; //其中的 form1只能是name 的值
</script>

表单字段(域)

表单字段包含在form标签里面,但不意味form标签里的所有元素都是表单字段
表单字段指:

input:类型众多,主要用来定义输入域
textarea:多行文本
select:定义下拉或多选列表
fieldset:将相关的表单用外框包含起来
button:默认带提交的按钮
output:显示输出结果
还有一些元素不属于表单字段,但是具备一些和表单字段交互的功能:
label:为input标签定义标注
datalist:为input标签提供选项列表

input的type类型

input元素比较特殊,它有个属性type,可以将input呈现出不同的效果:

text:文本框
password:密码框
radio:单选框
checkbox:多选框
file:文件上传控件
hidden:隐藏表单
submit:提交按钮
image:带图片的提交按钮
reset:重置按钮
button:普通按钮

注意:submit、image和button标签都带有提交功能

HTML 5新增的 type类型:

email̵url、number、range、date、time、datetime-local、month、week、search、tel、color

获取表单字段

<form id="fm" name="form1">
 <input type="text" id="phone" name="phone" />
</form> <script>
// ឴获取表单元素
let fm = document.getElementbyId("fm");
//方法1
let field = document.getElementById("phone");
//方法2
let field = fm.elements[0]; // elements 是获取表单元素中的所有表单域对象,通过下标值访问某一个表单字段
//方法3
let field = fm.elements["phone"]; //其中的phone 可以是 id 或 name 的值
//方法4
let field = fm.phone; //其中的phone 可以是 id 或 name 的值
//方法5
let field = fm["phone"]; //其中的phone 可以是 id 或 name 的值
//方法6
let field = fm[0]; // ٌ其中的下标值表示表单字段在表单元素中的序号
</script>

获取表单字段的值

可以通过value属性获取值

<body>
 <form action="">
 <input type="text" name="" id="test" value="this is a test">
 <textarea name="" id="test2" cols="30" rows="10">this is a test,too< /textarea>
 <script>
 console.log(test.value); // this is a test
 console.log(test2.value); // this is a test,too
 // 如果是文本域可以通过 innerHTML 来获取值
 console.log(test2.innerHTML); // this is a test,too
 </script>
 </form>
</body>

常见表单属性介绍

form

action:表单提交地址
method:提交方式
enctype:数据传递的方式
autocomplete:是否启用表单的自动完成功能,默认为 no
name:表单名
target:规定在何处打开action指定的地址

input

autocomplete:规定input 元素输入字段是否启用自动完成功能。默认为no
autofocus:规定页面加载时input元素应该自动获得焦点
checked:规定 type=checkbox/radio 时是否为选中状态
disabled:禁用该属性
list:指向引用的datalis,值为 datalist 的 id
maxlength:规定input元素中允许的最大字符数
name:表单字段的名称
placeholder:规定可描述输入input字段预期值的简短提示信息
readonly:规定输入字段是只读的
type:规定要显示的input元素的类型
value:指定input元素的value值

textarea

autofocus:规定当页面加载时input应该自动获得焦点
disabled禁用该属性
maxlength:规定input元素中允许的最大字符数
name:表单字段的名称
placeholder:规定可描述输入input字段预期值的简短提示信息
readonly:规定输入字段是只读的
rows:规定文本区域内可见的行数
cols:规定文本区域内可见的列数

textarea是通过 cols 和 rows ં属性来规定 textarea 的尺寸大小,不过最好使用 CSS的height 和 width属性

select

autofocus:规定当页面加载时input应该自动获得焦点
disabled禁用该属性
name:表单字段的名称
multiple:当指定了该属性时下拉列表变为多选列表

option

注:option只能包含在select或datalist中

disabled:规定此选项在首次加载时被禁用
selected:规定选项(在首次显示在列表中时)表现为选中状态
value:定义送往服务器的选项值

button

autofocus:规定当页面加载时自动获得焦点
disabled:规定此选项在首次加载时被禁用
type:只有3个值,button 表示普通按钮,submit 表示添加按钮,reset 表示重置按钮
value:按钮中的文本值,可以写在开始和结束标签之间

特殊属性

即不用填写属性值即可生效

autofocus、readonly、disabled、multiple、checked、selected

表单事件

事件名称事件的触发场景
onsubmit当表单提交的时候触发
onchange当修改表单字段的时候触发(内容出现改变就会触发)
onfocus获取焦点事件
onblur失去焦点事件
onreset点击重置按钮时触发
oninput在输入框里输入或删除一个字符是触发

html5新增表单控件

email:电子邮箱文本框,跟普通的没什么区别

 - 当输入不是邮箱的时候,验证不通过

 - 移动端的键盘会发生变化

tel:电话号码

url:网页的URL

search:搜索引擎

- chrome下输入文字后,会多出一个关闭的X

range:特定范围内的数值选择器

- min、max、step(步数)

- 例子: 用js来显示当前数值

number:只能包含数字的输入框

- 输入框末尾有两个箭头 上为加 下为减

color:颜色选择器

  • 点击显示颜色版

datetime:显示完整日期

  • 类似select选择样式

datetime-local:显示完整日期, 不包含时区

time:显示时间,不含时区

date:显示日期{年月日}

week:显示周{年月日周}

mouth:显示月{年月}

html5新增表单特性和函数

placeholder:输入框提示信息

- 例子:微博的密码框提示

autocomplete

- 默认为on,关闭提示选择off

autofocus:指定表单获取输入焦点

list和datalist:为输入框构造一个选择列表

- list值为datalist标签的id

required:此选项必填, 不能为空

Pattern:正则验证

- pattern=“\d{1,5}”

Formaction在submit里定义提交地址

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值