form 表单
假如form
表单内没有submit
按钮,只要button
元素,那末这个button
能够晋级为submit
按钮。
form
表单用来向服务器提交信息,经常运用属性
-
action
:提交表单的地点 -
name
:页面中能够不止一个表单,用name
来辨别,PS:id 也能够 -
method
:提交表单的要领,post
或get
-
target
:在那边翻开action
enctype
:-
application/x-www-form-urlencoded
:在发送前编码一切字符(默许) -
text/plain
:空格转换为 “+” ,但不对特别字符编码 -
multipart/form-data
:运用包括文件上传控件的表单时,必需运用该值
-
注:post
请乞降get
要求区分:参考文章:99% 的人都明白错了 HTTP 中 GET 与 POST 的区分
-
post
比get
安全性高,post
经由过程request body
通报数据,get
把参数包括在 URL 中 -
post
平常用于向服务器传送数据,get
平常用于向服务器猎取数据 -
get
要求页面能够被珍藏,post
不能够 -
get
只能举行 URL 编码,而post
支撑多种编码体式格局 -
get
在 URL 中通报参数有长度限定,而post
没有
input
input
标签用来吸收用户填写的信息,合营label
运用,它的for
属性能够选中form
表单内的id
属性或许用label
把input
包裹起来就不需要用for
了
经常运用属性
type
:经常运用的值-
password
:输入的内容自动自动变成小圆点 -
checkbox
:多选,靠name
属性分组,提交到后端的时刻被选中的value
是以 “,” 支解的一个字符串,经由过程name
属性获得 -
radio
:单选,靠name
分组 -
hidden
:暂存一些信息 file
:文件上传-
accept
设置上传文件花样 -
multiple
文件多选
-
-
submit/button/reset
:submit
能够提交表单,button
不能提交表单,reset
清空表单
-
-
placeholder
:提醒性笔墨,一旦输入内容就消逝 -
disabled
:该input
被禁用 -
require
:该input
必需被填写
select
select
用来设置下拉菜单,属性multiple
可设置多选
-
option
标签,属性selected
:默许挑选
textarea:多行文本输入,rows,cols设置默许行列
表单剧本
<form id="myColor" method="post">
<input type="radio" name="color" value="red">Red
<input type="radio" name="color" value="green">Green
<input type="radio" name="color" value="blue">Blue
</form>
<form id="myText" method="post">
<input type="text" value="hello">
<input type="text" value="world">
<input type="text" value="JS" autofocus>
<input type="submit" value="提交">
</form>
<script>
var myColor = document.getElementById('myColor')
var myText = document.getElementById('myText')
//获得表单中第一个字段
myColor.elements[0]
//获得表单中`name`为`color1`的字段
myColor.elements[color1]
//获得表单中字段的数目
myColor.elements.length
//当前字段禁用
myColor.elements[0].disabled = true
//点击input 选中默许展现的value
myText.elements[1].addEventListener('blur',function(e){
e.target.select()
})
</script>
- 能够经由过程
document.forms[0]
获得表单 -
myColor.elements[0]
可获获得表单中的第一个字段,多选框name
差别,也能够用name
的值查找,如myColor.elements[color1]
。 -
myColor.elements.length
获得表单中字段的数目. myColor.elements[0].disabled = true
禁用表单当前字段,true
为禁用,false
为恢复运用,能够应用在表单提交以后,防备用户重复提交表单myText.addEventListener('click',function(){ if(this.elements[3].type === 'submit'){ this.elements[3].disabled = true } })
-
autofocus
在表单字段中设置,当浏览器加载时自动把核心移到该字段 focus()
、change()
、blur()
分别是获得核心时触发,落空核心并转变value
才触发,落空核心时触发,个中change()
和blur()
先后顺序并没有严厉划定。
输入框选中高亮,输入非数字,转变色彩myText.elements[0].addEventListener('focus',function(e){ if(e.target.style.borderColor !== 'red'){ e.target.style.borderColor = 'yellow' } }) myText.elements[0].addEventListener('blur',function(e){ console.log(e.target.value) if(/[^\d]/.test(e.target.value)){ e.target.style.borderColor = 'red' }else{ e.target.style.borderColor = '' } }) myText.elements[0].addEventListener('change',function(e){ if(/[^\d]/.test(e.target.value)){ e.target.style.borderColor = 'blue' }else{ e.target.style.borderColor = '' } })
-
input
可设置size
、maxlength
,不能设置rows
、cols
;而textarea
则能够,但不能设置最大字符数。