input标签用于搜集用户信息,无结束标签。
首先说下我们常常看到<input>标签由一个父级<form>标签包裹着,<form>标签有什么用?为什么要使用表单标签?直接用<input>标签不可以吗?什么时候要用<form>标签,什么时候不用?
答案是,<form>标签是用于页面数据交互的,也就是表单的提交。
我们来模拟一个场景,一个页面,填写好数据之后点按钮提交,那这些内容提交到哪去呢?那这个<form>标签就起作用了,form标签中有个属性action用来指向表单的提交地址,用户点击提交按钮后,浏览器会直接把表单里的信息进行封装后发送到这个地址,地址对应的B页面通过表单标识就可以接收到A页面所提交的数据了。
如果直接用<input>标签,那么就不会产生交互,如果需要向后台提交数据的,就使用<form>,如果只是用来做前台展示效果的就直接使用<input>。
<form>标签中包含以下元素:input、textarea、button、select、optgroup、fieldset(这些会在另外一篇文章中详细介绍到)
<form>标签中的属性:action(url)、method(“get” or “post”)、name(表单的名字)、autocomplete(允许浏览器预测字段的输入,输入前自动显示出之前输入过的值,“on”为打开)
一、input基本属性
1、【type】 不同的type值,代表输入字段的不同表现形式。
(1)▶ text 单行的输入字段,可输入文本内容。默认宽度为 20 个字符,可用maxlength="xx"来指定最大长度。
可与readonly配合使用,readonly规定输入字段为只读,不可修改。可以用来防止值被修改,直到满足某些条件为止(比如选中了一个复选框)。然后使用 JS remove 掉 readonly 的值,将输入字段切换到可编辑状态。
▶ password 密码字段,字符被掩码,显示为星号或原点。
(2)▶ botton 可点击按钮,多用于通过JS事件来启动。
▶ reset 重置按钮,点击后清除掉表单中所有数据。
▶ image 可以自定义图像形式的提交按钮,配合src(图片的URL)和alt(获取不到图片时的替代文本)使用。
▶ radio 单选按钮,只能选择一个。
▶ checkbox 复选框,允许选择一个或者多个。
▶ submit 提交按钮,用于向服务器发送表单数据。数据会发送到表单的 action 属性中指定的页面。
(3)▶ file 产生带选择文件按钮的文件上传表单,可用accept属性来限制文件格式。
这边顺带介绍一下accept属性,只能与file搭配使用,能规定上传文件的类型,
accept=" image/* " => 不限制文件格式,accept=" image/gif " => 限制文件格式为gif,
accept=" image/gif,image/jpeg " => 可支持 gif 和 jpeg 类型的文件
2、【name】 规定 input 元素的名称,用于对提交到服务器后的表单数据进行标识。
注:只有设置了 name 属性的表单元素才能在提交表单时传递它们的值。
3、【value】 为 input 元素设定值,不同的输入类型,value属性的用法不同:
(1)type="button", "reset", "submit" => 定义按钮上的字
(2)type="text", "password", "hidden" => 定义输入框中的默认初始值
(3)type="checkbox", "radio", "image" => 定义与输入相关联的值
注:type="checkbox" 和 "radio" 时,必须要设置value属性。type="file" 时 不能用value。
4、【checked】设定在页面加载时默认选中的 input 元素,配合type="checkbox" 和 "radio"的input元素使用。
二、H5新增的几种常用属性
(1)min = “number/date” :规定输入字段所允许的最小值。
(2)input元素中的form属性,用于在form元素之外的字段,将其与form元素的名字绑定,这样就能也成为表单的一部分了。
三、表单常用事件
1、onblur = "shijian()" => 元素失去焦点时触发,常用于表单的验证,和onfocus相反。
2、onchange = "shijian()" => 在元素值被修改时触发,适用于<input>、<textarea>、<select>。
3、onselect = "shijian()" => 在元素中的文本被选中时触发。
4、onsubmit = "shijian()" =>属性在提交表单时触发,如点提交提示“提交成功”,只在<form>中使用。