Form標(biāo)簽屬性

測(cè)試同事提了個(gè)bug,說(shuō)表單提交不了了,并報(bào)了下面的錯(cuò)誤。

代碼中有隱藏的i輸入框設(shè)置了required 屬性,Chrome瀏覽器沒法focus這個(gè)控件,所以會(huì)報(bào)上面錯(cuò)誤

習(xí)慣性拿著錯(cuò)誤信息Google一下,看到答案是,在form標(biāo)簽中增加novalidate 屬性。加上novalidate 屬性后,果然錯(cuò)誤沒有了。于是直接提交代碼測(cè)試。

沒多久,測(cè)試同事跑過來(lái)說(shuō),現(xiàn)在表單沒法驗(yàn)證,必填項(xiàng)沒有輸入,提交表單不會(huì)有提示,于是試著把novalidate 屬性去掉,結(jié)果驗(yàn)證就出來(lái)了。


瀏覽器自動(dòng)表單驗(yàn)證

一番折騰后明白了表單提交不了,是其他問題導(dǎo)致的,跟novalidate 屬性沒有關(guān)系。那novalidate 屬性到底是干啥呢?Google研究一下,整理form屬性如下:


novalidate:指定瀏覽器不去驗(yàn)證form表單。(HTML5新增屬性)

autocomplete:指定瀏覽器是否自動(dòng)完成表單,默認(rèn):on,也可以設(shè)置autocomplete=off。(HTMl5新增屬性)

enctype:指定發(fā)送服務(wù)器前應(yīng)該如何對(duì)表單數(shù)據(jù)進(jìn)行編碼。

action:指定表單提交的地址,默認(rèn)當(dāng)前頁(yè)。

method:提交表單使用的HTTP方法,默認(rèn):GET。

name:指定識(shí)別表單的名稱,例如在DOM中使用:document.forms.name。

target:action屬性的目標(biāo)地址,指定在何處打開表單中的action-URL,默認(rèn):_seft。

accept-charset:提交表單所使用的字符集,HTML5默認(rèn)字符集為UTF-8。


具體使用方法:

novalidate:

novalidate屬性是一個(gè)boolean 值屬性,novalidate=true,如果form表單數(shù)據(jù)是不符合要求的,用戶想要保存表單數(shù)據(jù),可以使用novalidate屬性。

下面的例子,設(shè)置novalidate,如果input輸入text文本類型的值,瀏覽器不會(huì)報(bào)錯(cuò)。

<form action="" novalidate? >

E-mail: <input type="email" name="user_email">

<input type="submit">

</form>??

注意:novalidate 屬性也適用于以下類型的 <input> 標(biāo)簽:text, search, url, telephone, email, password, date pickers, range 以及 color。

autocomplete:

默認(rèn)情況下,瀏覽器能夠記住用戶通過input框提交的信息,這使得瀏覽器可以完成自動(dòng)填充功能。瞬間想到,應(yīng)該類似于可以看到瀏覽器的歷史記錄功能。默認(rèn)autocomplete=on,如果不想要瀏覽器記錄這些信息,可以設(shè)置autocomplete=off。

<form action="/action_page.php" method="get" autocomplete="off">

? First name:<input type="text" name="fname">

? <input type="submit">

</form>

<input type="text" name="fname" autocomplete="off">

注意:autocomplete屬性也適用于input標(biāo)簽。

enctype:

默認(rèn):application/x-www-form-urlencoded

當(dāng)method=‘post’時(shí),enctype有以下幾種取值:? ?

application/x-www-form-urlencoded:在發(fā)送HTTP請(qǐng)求錢編碼所有字符(空格被編碼為‘+’,特殊字符被編碼為ASCII十六進(jìn)制字符)

multipart/form-data:不對(duì)字符編碼,當(dāng) input type 是 "file" 時(shí),必須使用該值。

text/plain:空格轉(zhuǎn)換為‘+’,不對(duì)特殊字符編碼。

<form action="/action_page.php" method="post" enctype="multipart/form-data">

? name: <input type="text" name="name"><br>

? upload: <input type="file" name="file"><br>

? <input type="submit" value="Submit">

</form>

method:

瀏覽器通過method屬性設(shè)置的方法將表單中的數(shù)據(jù)傳送給服務(wù)器進(jìn)行處理,共有兩種方法:GET和POST。

method 方法規(guī)定如何發(fā)送表單數(shù)據(jù)(form-data)(表單數(shù)據(jù)會(huì)被發(fā)送到在 action 屬性中規(guī)定的頁(yè)面中)。

可以通過以下方式發(fā)送 form-data :

以 URL 變量 (使用 method="get") 的形式來(lái)發(fā)送

以 HTTP post (使用 method="post") 的形式來(lái)發(fā)送

關(guān)于 "get" 方法的注釋:

該方法將表單數(shù)據(jù)以名稱/值對(duì)的形式附加到 URL 中

該方法對(duì)于用戶希望加入書簽的表單提交很有用

在 URL 中放置的數(shù)據(jù)量是有限制的(不同的瀏覽器有差別),所以無(wú)法確保所有表單數(shù)據(jù)得到正確地傳輸

絕不要使用 "get" 方法來(lái)傳輸敏感信息!(密碼或其他敏感信息在瀏覽器地址欄中是可見的)

關(guān)于 "post" 方法的注釋:

該方法以 HTTP post 事務(wù)的方式來(lái)傳遞表單數(shù)據(jù)

無(wú)法將通過 "post" 方法提交的表單加入書簽

與 "get" 相比,"post" 方法更健壯更安全,而且 "post" 沒有容量限制

target:

target有以下取值:

_blank:在新窗口打開。

_self:默認(rèn),在相同的窗口載入action請(qǐng)求。

_parent:在父窗口打開。

_top:在整個(gè)窗口中打開。

framename:在指定的框架中打開。

執(zhí)行下面的代碼,切換不同的值,查看效果

<form action="/action_page.php" method="get" target="_self">

? First name: <input type="text" name="fname"><br>

? Last name: <input type="text" name="lname"><br>

? <input type="submit" value="Submit">

</form>

參考:

w3c教程

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,628評(píng)論 19 139
  • <input>標(biāo)簽 標(biāo)簽用于搜集用戶信息,根據(jù)不同的type屬性值,輸入字段擁有很多種形式。輸入字段可以是文本字段...
    _空空閱讀 4,193評(píng)論 0 3
  • ??JavaScript 最初的一個(gè)應(yīng)用,就是分擔(dān)服務(wù)器處理表單的責(zé)任,打破處處依賴服務(wù)器的局面。 ??盡管目前的...
    霜天曉閱讀 766評(píng)論 0 3
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 28,826評(píng)論 1 45
  • 今天八一建軍節(jié),恰逢兒子7周歲生日。 早在上幼兒園時(shí)期,看到同班小朋友在學(xué)校過生日,小朋友們?cè)谝黄馃釤?..
    王若涵媽媽閱讀 397評(píng)論 1 0

友情鏈接更多精彩內(nèi)容