亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

html中關于form與表單提交操作的資料集合

2024-08-26 00:13:48
字體:
來源:轉載
供稿:網友

這里我們介紹一下form元素與表單提交方面的知識。

form元素

form元素的DOM接口是HTMLFormElement,繼承自HTMLElement,因而它與其他的HTML元素擁有相同的默認屬性,不過它自身還有幾個獨有的屬性和方法:

屬性值 說明
accept-charset 服務器能夠處理的字符集,多個字符集用空格分割
action 接受請求的URL,該值可以被form元素中的input或button元素的formaction屬性覆蓋
elements 表單中所有控件集合(HTMLCollection)
enctype 請求的編碼類型,該值可以被form元素中的input或button元素的formenctype屬性覆蓋
length 表單中控件的數量
method 要發送的HTTP請求類型,通常是“get”或“post”,該值可以被form元素中的input或button元素的formmethod屬性覆蓋
name 表單的名稱
reset() 將所有表單域重置為默認值
submit() 提交表單
target 用于發送請求和接收響應的窗口名稱,該值可以被form元素中的input或button元素的formtarget屬性覆蓋
autocomplete 是否自動補全表單元素

input元素

input元素是應用非常廣泛的表單元素,根據type屬性值的不同,有以下幾種常用用法:

文本輸入 <input type="text" name="">
提交輸入 <input type="submit">
單選鈕輸入 <input type="radio" name="必須有相同的名字" value="填的值最好對應">
復選框輸入 <input type="checkbox" name="相同的名字" value="不同的對應值">
數字輸入 <input type="number" min="" max=""> 輸入框只能輸入數字,可設置最大值,最小值。
范圍輸入 <input type="range" min="" max="">類似number,但它會顯示一個滑動條,而不是輸入框。
顏色輸入<input type="color">會彈出一個顏色選擇器。
日期輸入<input type="date"> 會彈出一個日期選擇器。
email輸入 <input type="email">顯示為一個文本輸入框,并會彈出一個定制鍵盤。
tel輸入<input type="tel"> 跟email輸入類似
url輸入 <input type="url"> 跟email輸入類似,也會彈出一個定制鍵盤。
textarea元素可以創建一個多行的文本區。
<textarea name="" id="" cols="30" rows="10"></textarea>
其中cols和row的屬性值分別表示文本區寬度和高度的字符。
select元素和option元素結合使用可創建一個下拉菜單。
<select name="" id=""> <option value=""></option> <option value=""></option> <option value=""></option> </select>

radio

如何 分組? 設置不同的 name屬性即可

例:

<input type="radio" name="favourite" value="玩游戲">玩游戲
<input type="radio" name="favourite" value="寫代碼">寫代碼

<input type="radio" name="sex" value="man">男
<input type="radio" name="sex" value="woman">女、
這就是兩組radio

placeholder

提供可描述輸入字段預期值的提示信息(hint)。
該提示會在輸入字段為空時顯示,并會在字段獲得焦點時消失。

type=hidden

定義隱藏的input。隱藏字段對于用戶是不可見的。隱藏字段通常會存儲一個默認值,它們的值也可以由 JavaScript 進行修改。
比如用于安全方面,給后臺傳輸用戶不可見的name 和value值,讓后臺做校驗,防偽造頁面。

提交按鈕

在form中加入一個提交按鈕,便可使用戶得以提交表單。

下列三種按鈕皆可在點擊時觸發表單的submit事件:

<input type="submit" /><button type="submit"></button><input type="image" />

規范中button元素的type默認值是submit,但是在IE678下默認值是button,所以從兼容性考慮有必要為button元素手動加上type="submit"屬性。

submit事件

初心者可能會認為表單提交是提交按鈕的click事件觸發,其實不然,按鈕元素的click事件與表單的submit事件在不同的瀏覽器中執行順序不一,所以為了能準確控制表單提交事件,我們會選擇在表單的submit事件中執行驗證等操作。

form.addEventListener('submit', function (e) {  if (valid()) {    ...  }   e.preventDefault()})

當form元素中沒有上述的三個按鈕中任何一個的時候,用戶將無法提交表單(回車鍵也無效),此時可以利用form元素特有的submit()方法執行提交表單,需要注意的是調用submit()方法并不會觸發form元素的submit事件,表單的驗證等操作應該在調用submit()方法之前。

if (valid()) {  form.submit()}

表單提交與用戶體驗

基于現在流行的ajax+跨域POST(CORS)技術,我們很可能不使用form元素直接向服務器提交數據。這雖然可行,但在大多數情況下存在著體驗劣化現象。

JavaScript 表單驗證

JavaScript 可用來在數據被送往服務器前對 HTML 表單中的這些輸入數據進行驗證。

被 JavaScript 驗證的這些典型的表單數據有:

用戶是否已填寫表單中的必填項目?
用戶輸入的郵件地址是否合法?
用戶是否已輸入合法的日期?
用戶是否在數據域 (numeric field) 中輸入了文本?
必填(或必選)項目

下面的函數用來檢查用戶是否已填寫表單中的必填(或必選)項目。假如必填或必選項為空,那么警告框會彈出,并且函數的返回值為 false,否則函數的返回值則為 true(意味著數據沒有問題):

function validate_required(field,alerttxt){with (field){if (value==null||value=="")  {alert(alerttxt);return false}else {return true}}}

下面是連同 HTML 表單的代碼:

<html><head><script type="text/javascript">function validate_required(field,alerttxt){with (field)  {  if (value==null||value=="")    {alert(alerttxt);return false}  else {return true}  }}function validate_form(thisform){with (thisform)  {  if (validate_required(email,"Email must be filled out!")==false)    {email.focus();return false}  }}</script></head><body><form action="submitpage.htm" onsubmit="return validate_form(this)" method="post">Email: <input type="text" name="email" size="30"><input type="submit" value="Submit"> </form></body></html>

E-mail 驗證

下面的函數檢查輸入的數據是否符合電子郵件地址的基本語法。

意思就是說,輸入的數據必須包含 @ 符號和點號(.)。同時,@ 不可以是郵件地址的首字符,并且 @ 之后需有至少一個點號:

function validate_email(field,alerttxt){with (field){apos=value.indexOf("@")dotpos=value.lastIndexOf(".")if (apos<1||dotpos-apos<2)   {alert(alerttxt);return false}else {return true}}}

下面是連同 HTML 表單的完整代碼:

<html><head><script type="text/javascript">function validate_email(field,alerttxt){with (field){apos=value.indexOf("@")dotpos=value.lastIndexOf(".")if (apos<1||dotpos-apos<2)   {alert(alerttxt);return false}else {return true}}}function validate_form(thisform){with (thisform){if (validate_email(email,"Not a valid e-mail address!")==false)  {email.focus();return false}}}</script></head><body><form action="submitpage.htm"onsubmit="return validate_form(this);" method="post">Email: <input type="text" name="email" size="30"><input type="submit" value="Submit"> </form></body></html>

快捷鍵提交

在沒有form元素包裹的情況下,即使當前頁面的焦點在表單元素上,按回車鍵也不會觸發表單提交,對于用戶而言,需要從鍵盤控制切換到鼠標/手勢控制,破壞了原有的流暢度。解決方法最簡單的就是在外層用一個form元素包裹,并且確定form元素中起碼有一個提交按鈕。此時當表單中的輸入域得到焦點時,用戶按回車鍵便會觸發提交。

瀏覽器記住賬號密碼

在提交表單時,高級瀏覽器包括移動端瀏覽器,會詢問用戶是否需要記住用戶賬號密碼,對于一般用戶而言,這是一個十分有用的特性,特別是在移動端,可以為用戶節省很多時間。在沒有form元素的情況下,瀏覽器不會彈出該詢問窗口。

總結

我們在開發一個表單應用的時候,不應該嘗試去除form元素直接進行提交,在form元素中應該包含一個提交按鈕,如果是button元素,應該手動加上type="submit"屬性。提交事件的處理在form元素的submit事件中,而非提交按鈕的click事件。

參考:

form元素與表單提交

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品美女在线| 91久久在线观看| 国产精品日韩在线观看| 国产欧美日韩精品在线观看| 成人性生交大片免费观看嘿嘿视频| 精品亚洲va在线va天堂资源站| 欧美日本国产在线| 欧美激情第6页| 国产精品中文字幕在线观看| 精品国产1区2区| 亚洲精品不卡在线| 亚洲美女av在线播放| 亚洲精品在线不卡| 在线观看不卡av| www.欧美精品一二三区| 精品久久久久久中文字幕一区奶水| 国产精品入口免费视频一| 日本一区二区三区在线播放| 中文字幕日韩欧美在线| 欧美色图在线视频| 成人网在线观看| 亚洲激情久久久| 在线a欧美视频| 91美女片黄在线观| 国产欧美日韩丝袜精品一区| 国产精品一区=区| 久久人人爽人人爽人人片亚洲| 亚洲精品国偷自产在线99热| 精品人伦一区二区三区蜜桃网站| 欧美国产日韩免费| 久久久久久噜噜噜久久久精品| 97精品一区二区三区| 中文字幕日韩精品在线| 成人黄色在线播放| 亚洲一区二区三区成人在线视频精品| 最新国产成人av网站网址麻豆| 亚洲精品电影在线| 免费不卡欧美自拍视频| 欧美黑人一级爽快片淫片高清| 热草久综合在线| 91久久在线观看| 欧美精品videos| xvideos亚洲人网站| 7m精品福利视频导航| 97精品国产97久久久久久| 亚洲精品资源美女情侣酒店| 日本久久久久亚洲中字幕| 欧洲日本亚洲国产区| 欧美日韩国产91| 亚洲精品国产拍免费91在线| 日韩av大片免费看| 91精品久久久久久久久久久久久| www亚洲欧美| 国产精品日韩在线| 国产在线观看一区二区三区| www.日本久久久久com.| 永久免费毛片在线播放不卡| 一区二区成人精品| 久久综合88中文色鬼| 538国产精品一区二区免费视频| 精品久久久久久久久久久| 成人av在线亚洲| 亚洲第一中文字幕| 欧美激情高清视频| 亚洲第一天堂无码专区| 日本一区二区在线播放| 青青久久aⅴ北条麻妃| 日韩av电影在线播放| 亚洲欧美日韩国产中文| 欧美激情一级二级| 伦伦影院午夜日韩欧美限制| 国模视频一区二区三区| 日本高清+成人网在线观看| 美日韩精品视频免费看| 日本三级韩国三级久久| 欧洲永久精品大片ww免费漫画| 亚洲成色777777在线观看影院| 久久精品国产欧美亚洲人人爽| 在线观看不卡av| 欧美在线激情视频| 狠狠躁18三区二区一区| 综合久久五月天| 亚洲一区二区三区乱码aⅴ蜜桃女| 成人深夜直播免费观看| 欧美在线观看日本一区| 久久久久久久影视| 最近2019中文字幕在线高清| 91中文精品字幕在线视频| 91沈先生在线观看| 久久影院模特热| 九九视频直播综合网| 亚洲一区二区三区乱码aⅴ蜜桃女| www.午夜精品| 国产亚洲综合久久| 亚洲国产精品中文| 青青草99啪国产免费| 久久精品99久久久久久久久| 97av在线影院| 久久99精品久久久久久琪琪| 国产欧美一区二区三区久久| 亚洲开心激情网| 欧美夜福利tv在线| 欧美成人免费全部观看天天性色| 夜夜狂射影院欧美极品| 国产99在线|中文| 国产精品第一区| 久久精品亚洲94久久精品| 亚洲精品综合精品自拍| 亚洲aa在线观看| 这里只有精品久久| 亚洲日本成人女熟在线观看| 日本欧美国产在线| 欧美另类69精品久久久久9999| 亚洲毛片在线观看.| 国产精品va在线播放我和闺蜜| 欧美激情a∨在线视频播放| 在线观看日韩专区| 亚洲视频在线观看网站| 亚洲黄色有码视频| 亚洲欧美日韩在线高清直播| 亚洲欧美日韩综合| 成人av色在线观看| 欧美国产日韩一区| 欧美精品videos性欧美| 国产成人精品视频在线观看| 国产一区二区日韩| 热99在线视频| 精品久久久久久久中文字幕| 久久久久久69| 日韩最新中文字幕电影免费看| 91视频-88av| 日韩电影网在线| 日韩欧美成人网| 97超级碰碰碰久久久| 麻豆一区二区在线观看| 日本久久精品视频| 欧美性感美女h网站在线观看免费| 国产v综合v亚洲欧美久久| 亚洲高清不卡av| 欧美亚洲在线观看| 日本亚洲欧美成人| 亚洲国产精彩中文乱码av在线播放| 深夜福利91大全| 中文字幕精品一区久久久久| 国产99在线|中文| 欧美精品久久久久a| 国产日韩欧美在线视频观看| 亚洲精品一区中文字幕乱码| 日韩精品一区二区三区第95| 欧美一区视频在线| 欧美国产视频日韩| 91丨九色丨国产在线| 国产亚洲美女精品久久久| 亚洲国产高清高潮精品美女| 久久久久久有精品国产| 亚洲精品网址在线观看| 色七七影院综合| 精品久久久在线观看| 国产一区二区三区四区福利| 国产区亚洲区欧美区| 欧美成人三级视频网站| 91中文在线观看| 在线观看欧美成人| 欧美性猛交视频|