zoukankan      html  css  js  c++  java
  • HTML表单与文件

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <title></title>
        <meta charset="utf-8">
    </head>
    <body>
        当前行车速度:<meter value="159" min="0" max="220" low="0" high="160">120</meter>千米/小时<br/>
        <!--
        属性说明:
            value:当前值 默认0
            min:最小值 默认0
            max:最大值 默认1
            low:指定范围最小值 必须 > min
            high:指定范围最大值 必须 < max
            optimun:有效范围最佳值 如果该值 > high 说明越大越好,< low 说明越小越好
        -->
        任务完成比例:<progress value="30" max="100">30/100</progress><br/>
    <script type="text/javascript">
    </script>
    </body>
    </html>
    • 新增元素与属性

    form:指明元素归属哪个表单,可以写在form标签的外部,以前所有的表单元素都必须写在form表单内的
    formaction:元素所属的action
    formmethod:元素提交方式
    placeholder:提示输入
    autofocus:获取输入焦点
    list:与datelist配合生成下拉框

    1 <input type="text" name="greeting" list="greetings">
    2     <datalist id="greetings" style="disable:none">
    3         <option value="1">早上好</option>
    4         <option value="2">中午好</option>
    5         <option value="3">晚上好</option>
    6     </datalist>
    • 新增与改良的input type属性

    search:用于站点搜索,样式与text一样,但safari中search与text是不同的
    tel:与text类似,但用于电话
    url:与text文本框类似,但必须输入满足url格式的文字
    email:可以使用multiple属性,传递多个email地址,用逗号分隔
    datetime、date、month、week、time、datetime-location
    number
    range:只允许输入一定范围内数值的文本框,包含min与max属性,默认0~100
    color:颜色文本选择框
    file:可以通过指定multiple属性,选择多个文件

    • 验证

    required:是否必填
    pattern:指定正则表达式
    min、max:对于数值或日期类型,设置了最值
    step:增大或减小时的步幅
    formnovalidate:配置在提交按钮上或input上,对应的校验会消失

    • 文件API

    FileList对象:表示用户选择的文件列表
    file对象:FileList中的每个元素都是file对象

    举例:获取多选的文件

        <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script type="text/javascript">
            function showFileName(){
                var file;
                var upFiles = document.getElementById("file").files;
                var len = upFiles.length;
                for (var i = 0;i < len;i++){
                    file = upFiles[i];
                    document.write(file.name);
                    document.write("<br/>");
                }
            }
        </script>
    </head>
    <body>
        文件选择:<input type="file" multiple id="file" size="80" /><input type="button" value="文件上传" onclick="showFileName()">
    
    </body>
    </html>

    1 下拉框

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <title></title>
        <meta charset="utf-8">
    </head>
    <body>
        <form>
            单选
            <select>
                <option>1</option>
                <option>2</option>
                <option>3</option>
                <option>4</option>
            </select><tr>
            多选
            <select multiple="multiple">
                <option>1</option>
                <option>2</option>
                <option>3</option>
                <option>5</option>
                <option>6</option>
                <option>7</option>
                <option>8</option>
                <option>9</option>
                <option>0</option>
            </select><tr>
            optiongroup
            <select multiple="multiple">
                <optgroup label="书籍1">
                    <option>1_1</option>
                    <option>1_2</option>
                    <option>1_3</option>
                    <option>1_4</option>
                    <option>1_5</option>
                    <option>1_6</option>
                </optgroup>
                <optgroup label="书籍2">
                    <option>2_1</option>
                    <option>2_2</option>
                    <option>2_3</option>
                    <option>2_4</option>
                    <option>2_5</option>
                    <option>2_6</option>
                </optgroup>
            </select>
        </tr>
        </form>
    <script type="text/javascript">
    </script>
    </body>
    </html>

    2 表单属性

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <title></title>
        <meta charset="utf-8">
    </head>
    <body>
        <form>
            <!-- placeholder 属性指定提示内容 -->
            <input type="text" placeholder="提示内容"><br/>
            <!--输入与下拉同时使用-->
            <input type="text" name="book" list="books" /><br/>
    
            <!--通过指定formaction属性提交给不同的Action,不再需要通过JavaScript修改提交的Action-->
            <input type="submit" formaction="action1">
            <input type="submit" formaction="action2">
        </form>
        <datalist id="books">
            <option>书籍_1</option>
            <option>书籍_2</option>
            <option>书籍_3</option>
            <option>书籍_4</option>
        </datalist>
        <hr/>
        多文件上传
        <input type="file" multiple id="images" accept="image/*" />
        <input type="button" value="显示文件" onclick="showDetails()" />
        <script type="text/javascript">
            var showDetails = function(){
                var imageFile = document.getElementById("images");
                var fileList = imageFile.files;
                for(var i = 0;i < fileList.length;i++){
                    var file = fileList[i];
                    var div = document.createElement("div");
                    div.innerHTML = ""+(i+1)+"个文件的文件名是:"+file.name+",该文件大小是:"+file.size;
                    document.body.appendChild(div);
                }
            }
        </script>
    </body>
    </html>

    3 读取上传文件内容

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <title></title>
        <meta charset="utf-8">
    </head>
    <body>
        浏览文件:<input type="file" id="file1" /><br/>
        <div id="result"></div>
        <input type="button" value="读取文本文件" onclick="readText();"><br/>
        <input type="button" value="读取二进制文件" onclick="readBinary();"><br/>
        <input type="button" value="以DataURL方式读取" onclick="readURL();"><br/>
    <script type="text/javascript">
        var reader = null;
        if(FileReader){
            reader = new FileReader();
        }else{
            alert("浏览器暂不支持FileReader对象");
        }
    
        var readText = function(){
            reader.readAsText(document.getElementById("file1").files[0],"gbk");
            reader.onload = function(){
                document.getElementById("result").innerHTML = reader.result;
            }
        }
    
        var readBinary = function(){
            reader.readAsBinaryString(document.getElementById("file1").files[0]);
            reader.onload = function(){
                document.getElementById("result").innerHTML = reader.result;
            }
        }
    
        var readURL = function(){
            reader.readAsDataURL(document.getElementById("file1").files[0]);
            reader.onload = function(){
                document.getElementById("result").innerHTML = reader.result;
            }
        }
    </script>
    </body>
    </html>
  • 相关阅读:
    POJ 1129 深搜&四色染图&模拟
    POJ 1011 很经典的树枝拼凑的深度搜索
    HDU 2564 词组缩写
    Java中的split函数的用法
    java中next和nextline的区别
    简探this和super
    再探Java中的继承加载顺序
    Java面向接口编程小例子 2
    Dos命令整理集(持续更新)
    VMware WorkStation9.0虚拟机如何运行WINPE
  • 原文地址:https://www.cnblogs.com/sherrykid/p/4619630.html
Copyright © 2011-2022 走看看