整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          16.HTML 表單提交

          現代web開發中,表單是用戶與網站互動的重要方式之一。HTML5為表單提交提供了強大的功能和豐富的輸入類型,讓收集和驗證用戶輸入數據變得更加容易和安全。本文將詳細介紹HTML5表單的各個方面,包括基本結構、輸入類型、驗證方法和提交過程。

          基本結構

          HTML表單由<form>標簽定義,它可以包含輸入字段、標簽、按鈕等元素。一個基本的表單結構如下所示:

          <form action="/submit_form" method="post">
            <label for="name">姓名:</label>
            <input type="text" id="name" name="name" required>
            
            <label for="email">電子郵箱:</label>
            <input type="email" id="email" name="email" required>
            
            <input type="submit" value="提交">
          </form>
          

          在這個例子中,表單有兩個輸入字段:姓名和電子郵箱。每個輸入字段都有一個<label>標簽,這不僅有助于用戶理解輸入的內容,也有助于屏幕閱讀器等輔助技術。<form>標簽的action屬性定義了數據提交到服務器的URL,method屬性定義了提交數據的HTTP方法(通常是post或get)。

          輸入類型

          HTML5提供了多種輸入類型,以支持不同的數據格式和設備。

          文本輸入

          <!-- 單行文本 -->
          <input type="text" name="username" placeholder="請輸入用戶名" required>
          
          <!-- 密碼 -->
          <input type="password" name="password" required minlength="8">
          
          <!-- 郵箱 -->
          <input type="email" name="email" required placeholder="example@domain.com">
          
          <!-- 搜索框 -->
          <input type="search" name="search" placeholder="搜索...">
          

          數值輸入

          <!-- 數值 -->
          <input type="number" name="age" min="18" max="100" step="1" required>
          
          <!-- 滑動條 -->
          <input type="range" name="volume" min="0" max="100" step="1">
          
          <!-- 電話號碼 -->
          <input type="tel" name="phone" pattern="^\+?\d{0,13}" placeholder="+8613800000000">
          

          日期和時間輸入

          <!-- 日期 -->
          <input type="date" name="birthdate" required>
          
          <!-- 時間 -->
          <input type="time" name="appointmenttime">
          
          <!-- 日期和時間 -->
          <input type="datetime-local" name="appointmentdatetime">
          

          選擇輸入

          <!-- 復選框 -->
          <label><input type="checkbox" name="interest" value="coding"> 編程</label>
          <label><input type="checkbox" name="interest" value="music"> 音樂</label>
          
          <!-- 單選按鈕 -->
          <label><input type="radio" name="gender" value="male" required> 男性</label>
          <label><input type="radio" name="gender" value="female"> 女性</label>
          
          <!-- 下拉選擇 -->
          <select name="country" required>
            <option value="china">中國</option>
            <option value="usa">美國</option>
          </select>
          

          特殊輸入

          <!-- 顏色選擇器 -->
          <input type="color" name="favcolor" value="#ff0000">
          
          <!-- 文件上傳 -->
          <input type="file" name="resume" accept=".pdf,.docx" multiple>
          

          驗證方法

          HTML5表單提供了內置的驗證功能,可以在數據提交到服務器之前進行檢查。

          必填字段

          <input type="text" name="username" required>
          

          正則表達式

          <input type="text" name="zipcode" pattern="\d{5}(-\d{4})?" title="請輸入5位數的郵政編碼">
          

          數值范圍

          <input type="number" name="age" min="18" max="99">
          

          長度限制

          <input type="text" name="username" minlength="4" maxlength="8">
          

          表單提交

          當用戶填寫完表單并點擊提交按鈕時,瀏覽器會自動檢查所有輸入字段的有效性。如果所有字段都滿足要求,表單數據將被發送到服務器。否則,瀏覽器會顯示錯誤信息,并阻止表單提交。

          <input type="submit" value="提交">
          

          可以使用JavaScript來自定義驗證或處理提交事件:

          document.querySelector('form').addEventListener('submit', function(event) {
            // 檢查表單數據
            if (!this.checkValidity()) {
              event.preventDefault(); // 阻止表單提交
              // 自定義錯誤處理
            }
            // 可以在這里添加額外的邏輯,比如發送數據到服務器的Ajax請求
          });
          

          完整例子

          <!DOCTYPE html>
          <html lang="en">
          <head>
          <meta charset="UTF-8">
          <title>表單提交并顯示JSON</title>
          </head>
          <body>
          
          <!-- 表單定義 -->
          <form id="myForm">
            <label for="name">姓名:</label>
            <input type="text" id="name" name="name">
            <br>
          
            <label for="email">電子郵件:</label>
            <input type="email" id="email" name="email">
            <br>
          
            <input type="button" value="提交" onclick="submitForm()">
          </form>
          
          <script>
          // JavaScript函數,處理表單提交
          function submitForm() {
            // 獲取表單元素
            var form = document.getElementById('myForm');
            
            // 創建一個FormData對象
            var formData = new FormData(form);
            
            // 創建一個空對象來存儲表單數據
            var formObject = {};
            
            // 將FormData轉換為普通對象
            formData.forEach(function(value, key){
              formObject[key] = value;
            });
            
            // 將對象轉換為JSON字符串
            var jsonString = JSON.stringify(formObject);
            
            // 彈出包含JSON字符串的對話框
            alert(jsonString);
            
            // 阻止表單的默認提交行為
            return false;
          }
          </script>
          
          </body>
          </html>
          

          在這個例子中:

          1. 我們定義了一個包含姓名和電子郵件輸入字段的表單,以及一個按鈕,當點擊按鈕時會調用submitForm函數。
          2. 在submitForm函數中,我們首先獲取表單元素并創建一個FormData對象。然后,我們遍歷FormData對象,將表單數據復制到一個普通的JavaScript對象formObject中。
          3. 接著,我們使用JSON.stringify方法將formObject轉換成JSON字符串。
          4. 最后,我們使用alert函數彈出一個包含JSON字符串的對話框。

          注意,這個例子中我們使用了type="button"而不是type="submit",因為我們不希望表單有默認的提交行為。我們的JavaScript函數submitForm會處理所有的邏輯,并且通過返回false來阻止默認的表單提交。如果你想要使用type="submit",你需要在<form>標簽上添加一個onsubmit="return submitForm()"屬性來代替按鈕上的onclick事件。

          結論

          HTML5的表單功能為開發者提供了強大的工具,以便創建功能豐富、用戶友好且安全的網站。通過使用HTML5的輸入類型和驗證方法,可以確保用戶輸入的數據是有效的,同時提高用戶體驗。隨著技術的不斷進步,HTML5表單和相關API將繼續發展,為前端工程師提供更多的可能性。

          據W3C網頁規范化設計要求,網頁應該遵循結構(Structure)、表現(Presentation)和行為(Behavior)的分離。這3種技術簡單說明如下。

          • 結構:使用HTML、XHTML或者XML語言規范設計的網頁標簽代碼,即網頁的結構和內容。
          • 表現:使用CSS語言規范設計的網頁樣式代碼,即網頁顯示效果(或稱呈現效果)。
          • 行為:使用JavaScript語言和DOM規范設計的網頁腳本代碼,即網頁特效、動畫或者互動行為。

          在深入網頁設計之前,初學者應該先掌握HTML語言,能夠熟練使用HTML標簽。這對于大部分初學者來說,通過認真閱讀本章知識,能夠初步達成這個目標。同時糾正初學者不規范的操作習慣,養成良好的、符合標準的手寫代碼習慣。

          HTML

          HTML是目前在網絡上應用最為廣泛的語言,也是構成網頁文檔的主要語言。HTML文檔是由HTML標簽組成的描述性文本,HTML標簽可以標識文字、圖形、動畫、聲音、表格、鏈接等。

          HTML與XHTML

          • HTML是Hypertext Markup Language的縮寫,中文翻譯為超文本標識語言。使用HTML標簽編寫的文檔稱為HTML文檔,目前最新版本是HTML 5.0,使用最廣泛的是HTML 4.1版本。

          早期版本的HTML語言不適合構建標準化網頁,因為它把結構和表現混淆在一起,例 如, HTML把不同類型的元素,如描述性元素color、i等和結構性元素div、table等,以 及元素屬性放在一起,為以后的維護和管理埋下隱患。

          • XHTML是The Extensible HyperText Markup Language的縮寫,中文翻譯為可擴展標識語言,實際上它是HTML語言的升級版本,目前遵循的是W3C于2000年1月推薦的XHTML 1.0(參考http://www.w1.org/TR/xhtml1)。XHTML和HTML在語法和標簽使用方面差別不大。熟悉HTML語言,再稍加熟悉標準結構和規范,也就熟悉了XHTML語言。XHTML具有如下特點:

           用戶可以擴展元素,從而擴展功能,但在目前1.0版本下,用戶只能夠使用固定的預定 義元素,這些元素基本上與HTML 4版本元素相同,但刪除了部分屬性描述性的元素。

           能夠與HTML很好地溝通,可以兼容當前不同的網頁瀏覽器,實現XHTML頁面的正確 瀏覽。

          HTML語言作用

          HTML作為一種網頁內容標識語言,易學易懂,熟悉使用該語言可以制作功能強大、美觀大方的網頁。HTML語言的主要作用說明如下:

          1. 使用HTMl語言標識文本。
          2. 使用HTML語言建立超鏈接,通過超鏈接可以訪問互聯網上的所有信息,當使用鼠標單 擊超鏈接時,會自動跳轉到鏈接頁面。
          3. 使用HTML語言創建列表,把信息有序地組織在一起,以方便瀏覽。
          4. 使用HTMl語言在網頁中顯示圖像、聲音、視頻、動畫等多媒體信息,把網頁設計得更 富沖擊力。
          5. 使用HTML語言可以制作表格,以方便顯示大量數據。
          6. 使用HTML語言制作表單,允許在網頁內輸入文本信息,執行其他用戶操作,方便信息 互動。

          HTML文檔基本結構

          HTML文檔一般都應包含兩部分:頭部區域和主體區域。HTML文檔基本結構由3個標簽負責組織:<html>、<head>和<body>。其中<html>標簽標識HTML文檔,<head>標簽標識頭部區域,而<body>標簽標識主體區域。

          Query File Upload是一個開源(MIT協議)的文件上傳插件。支持文件上傳、多文件選擇窗口、拖拽上傳,提供進度條、驗證和預覽圖像、音頻、視頻的功能。支持跨域、分塊和可暫停的文件上傳及客戶端圖像調整。適用于任何服務器端平臺(PHP、Python、Ruby on Rails、Java、Node.js、Go etc等),支持標準的HTML表單文件上傳。

          1、下載及初始化

          https://github.com/blueimp/jQuery-File-Upload

          下載插件解壓放到項目任意位置,在頁面中引入文件上傳依賴jQuery、jQuery UI widget factory(如果已引入jQuery UI則不用引入)、jQuery Iframe Transport plugin(支持XHR文件上傳的插件),除此之外還有可選插件,如Bootstrap、JavaScript Load Image library等。

          然后在body中創建一個文件類型的input元素,設置id、name、data-url屬性。

          最后寫入如下代碼,運行腳本,一個最簡單的文件上傳就完成了。

          2、產品特點

          • 多文件上傳

          可以同時選擇多個文件并上傳。

          • 支持拖拽

          允許拖拽上傳文件,從你的桌面拖拽或文件管理,把他們拖到你的瀏覽器窗口。

          • 可撤銷上傳

          可以取消停止上傳單個文件上傳。

          • 可恢復上傳

          可以恢復單個文件上傳。

          • 分塊上傳

          大文件支持分成多個小塊上傳。

          • 客戶端圖像調整

          圖片在客戶端可以自動調整大小。

          • 預覽圖像、音頻和視頻

          支持圖像、音頻和視頻文件預覽。

          • 不需要瀏覽器插件(例如Adobe Flash)

          jQuery File Upload是基于開放標準的HTML5和JavaScript實現的,不需要任何瀏覽器插件。

          • HTML表單文件上傳

          允許通過使用一個標準的HTML文件上傳表單部件元素。

          • 跨域文件上傳

          支持上傳文件到另一個域和跨站點。

          • 可定制和擴展

          提供了一個API來設置各個選項,為各種上傳事件定義回調方法。

          • 兼容任何服務器端應用程序平臺

          適用于任何服務器端平臺(PHP、Python、Ruby on Rails、Java、Node.js、Go etc)

          桌面瀏覽器兼容:

          • Google Chrome

          • Apple Safari 4.0+

          • Mozilla Firefox 3.0+

          • Opera 11.0+

          • Microsoft Internet Explorer 6.0+

          移動端瀏覽器兼容:

          • Apple Safari on iOS 6.0+

          • Google Chrome on iOS 6.0+

          • Google Chrome on Android 4.0+

          • Default Browser on Android 2.3+

          • Opera Mobile 12.0+

          詳情前往官網查看:

          https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support


          有哪里寫得不好的地方請大家提出來,請輕噴,謝謝。 同時有什么與編程相關的好東西可以推舉給我,再次感謝!


          主站蜘蛛池模板: 久久一区二区免费播放| 97se色综合一区二区二区| 亚洲日本一区二区三区在线 | 亚洲av无码一区二区三区四区| 中文字幕精品亚洲无线码一区 | 午夜视频一区二区| 亚洲国产精品一区第二页 | 中文字幕日韩一区二区三区不卡| 国产成人无码精品一区在线观看| 日韩成人一区ftp在线播放| 无码人妻精一区二区三区| 无码人妻精品一区二区三区久久| 色偷偷一区二区无码视频| 中文字幕一区二区三| 国产伦精品一区二区三区| 一本岛一区在线观看不卡| 波多野结衣在线观看一区二区三区 | 波多野结衣AV一区二区三区中文| 一色一伦一区二区三区| 在线视频一区二区三区| 骚片AV蜜桃精品一区| 亚洲Av无码国产一区二区| 无码人妻精品一区二区三区在线 | 无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看 | 日本一区二区三区在线视频 | 国产人妖视频一区二区| 91福利国产在线观看一区二区 | 精品国产亚洲一区二区在线观看 | 日本一区二区三区不卡在线视频| 精品国产一区二区二三区在线观看| 在线不卡一区二区三区日韩| 亚洲午夜精品第一区二区8050 | 成人精品视频一区二区三区尤物| 中文字幕av日韩精品一区二区| 欧美日韩精品一区二区在线观看 | 国产精品538一区二区在线| 亚洲av乱码中文一区二区三区| 男人的天堂精品国产一区| 日本一区二区三区免费高清在线 | 国产一区二区三区不卡在线看| 国产一区二区三区夜色|