一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

html中form與表單提交操作的方法總結(jié)

 hncdman 2023-03-08 發(fā)布于湖南

時間:2021-07-01 10:21:17 

本文主要介紹了html中form元素與表單提交方面的知識,需要的朋友可以參考一下,希望能幫助到大家。

form元素

form元素的DOM接口是HTMLFormElement,繼承自HTMLElement,因而它與其他的HTML元素?fù)碛邢嗤哪J(rèn)屬性,不過它自身還有幾個獨(dú)有的屬性和方法:

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

input元素

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

文本輸入 <input type="text" name="">
提交輸入 <input type="submit">
單選鈕輸入 <input type="radio" name="必須有相同的名字" value="填的值最好對應(yīng)">
復(fù)選框輸入 <input type="checkbox" name="相同的名字" value="不同的對應(yīng)值">
數(shù)字輸入 <input type="number" min="" max=""> 輸入框只能輸入數(shù)字,可設(shè)置最大值,最小值。
范圍輸入 <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元素可以創(chuàng)建一個多行的文本區(qū)。
<textarea name="" id="" cols="30" rows="10"></textarea>
其中cols和row的屬性值分別表示文本區(qū)寬度和高度的字符。
select元素和option元素結(jié)合使用可創(chuàng)建一個下拉菜單。
<select name="" id=""> <option value=""></option> <option value=""></option> <option value=""></option> </select>

radio

如何 分組? 設(shè)置不同的 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

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

type=hidden

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

提交按鈕

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

下列三種按鈕皆可在點(diǎn)擊時觸發(fā)表單的submit事件:

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

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

submit事件

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


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


表單提交與用戶體驗(yàn)

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

JavaScript 表單驗(yàn)證

JavaScript 可用來在數(shù)據(jù)被送往服務(wù)器前對 HTML 表單中的這些輸入數(shù)據(jù)進(jìn)行驗(yàn)證。

被 JavaScript 驗(yàn)證的這些典型的表單數(shù)據(jù)有:

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

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


下面是連同 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 驗(yàn)證

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

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


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

瀏覽器記住賬號密碼

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

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

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    一区二区不卡免费观看免费| 亚洲一区二区精品免费视频| 一区二区三区四区亚洲另类| 免费精品一区二区三区| 91欧美日韩国产在线观看| 色鬼综合久久鬼色88| 好吊色免费在线观看视频| 亚洲一区二区三区av高清| 色小姐干香蕉在线综合网| 亚洲一区二区三区日韩91| 国产精品免费福利在线| 国产免费自拍黄片免费看| 亚洲av秘片一区二区三区| 老司机精品国产在线视频| 亚洲伦片免费偷拍一区| 高清在线精品一区二区| av一区二区三区天堂| 视频一区二区 国产精品| 视频一区二区三区自拍偷| 欧美黑人在线一区二区| 激情五月天深爱丁香婷婷| 中文字幕91在线观看| 久久久免费精品人妻一区二区三区 | 国产激情国产精品久久源| 情一色一区二区三区四| 国产小青蛙全集免费看| 国产丝袜女优一区二区三区| 尤物天堂av一区二区| 国产一区二区熟女精品免费| 麻豆视频传媒入口在线看| 精品少妇一区二区视频| 色婷婷国产精品视频一区二区保健| 激情图日韩精品中文字幕| 国产欧美日韩不卡在线视频| 日韩中文字幕在线不卡一区| 午夜午夜精品一区二区| 欧美区一区二在线播放| 少妇肥臀一区二区三区| 久久精品欧美一区二区三不卡| 国产精品视频一区二区秋霞| 久久精品偷拍视频观看|