H5 表单

      伴随着互联网富应用以及移动开发的兴起,传统的Web表单已经越来越不能满足开发的需求,HTML5在Web表单方向也做了很大的改进,如拾色器、日期/时间组件等,使表单处理更加高效。    

1.1新增表单类型

- email - 限定输入内容为邮箱地址,表单提交时会校验格式
- url - 限定输入内容为URL,表单提交时会校验格式
- number - 限定输入内容为数字,表单提交时会校验格式
- range - 数值范围选择器
- Date Pickers - 日期时间选择器
+ 样式不能修改,移动端用的比较多,因为移动端显示的是系统的时间或日期选择器
+ date - 选取日、月、年
+ month - 选取月、年
+ week - 选取周和年
+ time - 选取时间(小时和分钟)
+ datetime - 选取时间、日、月、年,浏览器兼容性不好,效果等同于datetime-local
+ datetime-local - 选取本地时间、日、月、年
- search - 搜索域,语义化,表示定义搜索框

代码:

<form action="">
        <fieldset>
            <legend>表单类型</legend>
            <label for="">
                email: <input type="email" name="email" required>
            </label>
            <label for="">
                color: <input type="color" name="color">
            </label>
            <label for="">
                url: <input type="url" name='url'>
            </label>
            <label for="">
                <!-- step 步数-->
                number: <input type="number" step="3" name="number">
            </label>
            <label for="">
                range: <input type="range" name="range" value="20">
            </label>
            <label for="">
                search: <input type="search" name="search">
            </label>
            <label for="">
                tel: <input type="tel" name="tel">
            </label>
            <label for="">
                time: <input type="time" name="time">
            </label>
            <label for="">
                date: <input type="date" name="date">
            </label>
            <label for="">
                datetime: <input type="datetime">
            </label>
            <label for="">
                week: <input type="week" name="week">
            </label>
            <label for="">
                month: <input type="month" name="month">
            </label>
            <label for="">
                datetime-local: <input type="datetime-local" name="datetime-local">
            </label>
            <input type="submit">
        </fieldset>
    </form>

其他常用旧表格类型:

<form action="">
    <input type="text"/>
    <input type="button"/>
    <input type="submit"/>
    <input type="checkbox"/>
    <input type="radio"/>
    <input type="password"/>
    <input type="file"/>
    <input type="image"/>
    <input type="reset"/>
</form>

1.2新增表单属性

- form
+ autocomplete 设置整个表单是否开启自动完成 on|off
+ novalidate 设置H5的表单校验是否工作 true 不工作 不加该属性代表校验

- input:
+ autocomplete 单独设置每个文本框的自动完成
+ autofocus 设置当前文本域页面加载完了过后自动得到焦点
+ form 属性是让表单外的表单元素也可以跟随表单一起提交
+ form overrides
* formaction 在submit上重写表单的特定属性,当点击当前submit时会以当前值使用
* formenctype,
* formmethod,
* formnovalidate,
* formtarget
+ list 作用就是指定当前文本框的自动完成列表的数据 datalist 在界面上是看不见的,只是用于定义数据列表的
+ min / max / step
* min max 限制值的范围,但是不会再输入时限制,提交时校验,
* step设置的是每次加减的增量
* 主要使用在number range datepicker上
+ multiple
* 文本域的多选
+ pattern
* 设置文本框的匹配格式(正则)
+ placeholder
* 文本框占位符
+ required
* 限制当前input为必须的

代码:

 1 <form action="" autocomplete="on" id="form" >
 2         <fieldset>
 3             <legend>表单属性</legend>
 4             <label for="">
 5                 autofocus: <input type="text" autocomplete="on" name="autofocus" autofocus required>
 6             </label>
 7             <label for="">
 8                 placeholder: <input type="text" pattern="D+" placeholder="这是一个占位符" novalidate>
 9             </label>
10             <label for="">
11                 multiple: <input type="file" multiple>
12             </label>
13             <input type="submit" value="提交">
14         </fieldset>
15     </form>
16     <label for="">
17         表单外的一个元素:
18         <input type="text" name="outer" form="form">
19     </label>

1.3表单事件

oninput 用户输入内容时触发,可用于移动端输入字数统计
oninvalid 验证不通过时触发 setCustomValidity 设置自定义提示

代码:

 1     <form action="">
 2         <fieldset>
 3             <legend>表单事件</legend>
 4             <label for="">
 5                 oninput: <input type="email" id="input">
 6             </label>
 7             <input type="submit" value="提交">
 8         </fieldset>
 9     </form>
10     <script>
11         var input = document.getElementById('input');
12 
13         input.oninvalid = function () {
14 
15             this.setCustomValidity('请输入正确的邮箱地址')
16         }
17     </script>

1.4移动端虚拟键盘调用

1   <input type="text" name="txt_text" id="txt_text">
2     <input type="number" name="txt_number" id="txt_number">
3     <input type="email" name="txt_email" id="txt_email">
4     <input type="tel" name="txt_tel" id="txt_tel">
5     <input type="url" name="txt_url" id="txt_url">
原文地址:https://www.cnblogs.com/lxj-echo/p/5783585.html