Form表單的使用

form簡(jiǎn)介

<form>是HTML中的一個(gè)元素廊谓,它表示文檔中的一個(gè)區(qū)域,這個(gè)區(qū)域包含了交互控件彩扔,用于向web服務(wù)器提交信息妆档。

除全局屬性外,<form>還有如下一些屬性:

  • accept-charset:一個(gè)以空格或逗號(hào)分隔(在HTML5中虫碉,僅能以空格作為分隔符)的列表贾惦,這個(gè)列表包括了服務(wù)器支持的字符編碼。瀏覽器以這些編碼被列舉的順序使用它們敦捧。默認(rèn)值是一個(gè)保留字符串“UNKNOWN”须板。這個(gè)字符串指的是,和包含這個(gè)<form>元素的文檔相同的字符編碼绞惦。
  • action:處理<form>表單數(shù)據(jù)的程序所在的URL地址逼纸,即向何處提交表單數(shù)據(jù)。
  • autocomplete:用于設(shè)置<input>元素是否能夠有默認(rèn)值济蝉,這個(gè)默認(rèn)值是由瀏覽器自動(dòng)補(bǔ)全的杰刽。這個(gè)設(shè)置可以被<form>的子元素的 autocomplete 屬性覆蓋。
    有兩個(gè)取值:off(瀏覽器不會(huì)自動(dòng)補(bǔ)全)王滤,on(瀏覽器會(huì)根據(jù)用戶之前在form中輸入的值自動(dòng)補(bǔ)全)贺嫂。
  • enctype:提交給服務(wù)器的表單數(shù)據(jù)內(nèi)容的MIME類型,有三個(gè)取值:
    application/x-www-form-urlencoded(屬性未指定時(shí)的默認(rèn)值)雁乡,multipart/form-data(用于 type為 "file" 的 <input>元素)第喳,
    text/plain (HTML5)。
    enctype值可以被<button>或者<input>元素中的 formenctype 屬性覆蓋踱稍。
  • method:向?yàn)g覽器提交form表單的HTTP方法曲饱,有兩種方法:
    post方法:表單數(shù)據(jù)被包含在請(qǐng)求體中發(fā)送給服務(wù)器;
    get方法:表單數(shù)據(jù)會(huì)被追加到查詢字符串中發(fā)送給服務(wù)器珠月。
    這個(gè)值可以被<button>或者<input>元素中的 formmethod 屬性覆蓋扩淀。
  • name:指定form的名稱。
  • novalidate:這個(gè)屬性是一個(gè)布爾屬性啤挎,指定了是否對(duì)表單提交的數(shù)據(jù)進(jìn)行驗(yàn)證驻谆。這個(gè)屬性可以被<button><input>的formnovalidate屬性覆蓋。
  • target:指定<form>提交后,在哪里顯示響應(yīng)胜臊。有以下幾種取值:
    _self:默認(rèn)值勺卢,在當(dāng)前文檔頁(yè)面加載返回值;
    _blank:在新窗口加載返回值象对;
    _parent:在父級(jí)上下文中加載黑忱,如果沒(méi)有父級(jí),按_self執(zhí)行织盼;
    _top:如果是HTML 4文檔杨何,清空當(dāng)前文檔,加載返回內(nèi)容沥邻;如果是HTML5危虱,在頂級(jí)上下文內(nèi)加載返回值。如果沒(méi)有父級(jí)唐全,按_self執(zhí)行埃跷。
    iframename: 指定的frame中加載。

form表單控件

1.<input>

<input>是form表單中最常用的輸入對(duì)象之一邮利,具有如下屬性:

  • type:設(shè)置控件的類型弥雹,默認(rèn)為text。
    根據(jù)type屬性的不同延届,<input>有不同的作用剪勿,<input>的常見(jiàn)type如下:
    • button:無(wú)缺省行為按鈕。
    • radio:?jiǎn)芜x按鈕方庭。必須使用 value 屬性定義此控件被提交時(shí)的值厕吉,使用checked指示控件是否被默認(rèn)選擇。在同一個(gè)“單選按鈕組”中械念,所有單選按鈕的 name 屬性使用同一個(gè)值头朱; 一個(gè)單選按鈕組中,同一時(shí)間只有一個(gè)單選按鈕可以被選擇龄减。
    • checkbox:復(fù)選框项钮。必須使用 value 屬性定義此控件被提交時(shí)的值,使用 checked 屬性指示控件是否被選擇希停,也可以使用 indeterminate 指示復(fù)選框在一種不確定狀態(tài)烁巫。
    • color:用來(lái)指定顏色的控件。
    • date:用來(lái)輸入日期的控件宠能。
    • datetime:基于UTC時(shí)區(qū)的日期時(shí)間輸入控件程拭。
    • datetime-local:用于輸入日期時(shí)間的控件,不包含時(shí)區(qū)棍潘。
    • month:輸入年月的控件,不帶時(shí)區(qū)。
    • week:用于輸入一個(gè)由星期-年組成的日期亦歉,日期不包括時(shí)區(qū)恤浪。
    • time:用于輸入不含時(shí)區(qū)的時(shí)間控件。
    • email:用于編輯email的字段肴楷,當(dāng)提交表單時(shí)水由,會(huì)自動(dòng)地對(duì) email 字段的值進(jìn)行驗(yàn)證。合適的時(shí)候可以使用 :valid 和 :invalid CSS 偽類赛蔫。
    • tel:用于輸入電話號(hào)碼的控件砂客。
    • url:用于編輯URL的字段。
    • file:此控件可以讓用戶選擇文件呵恢。使用 accept 屬性可以定義控件可以選擇的文件類型鞠值。
    • hidden:不顯示在頁(yè)面上的控件,但它的值會(huì)被提交到服務(wù)器渗钉。
    • image:圖片提交按鈕彤恶,必須使用 src 屬性定義圖片的來(lái)源及使用 alt 定義替代文本。
    • number:用于輸入浮點(diǎn)數(shù)的控件鳄橘。
    • password:用于輸入值被掩蓋的單行文本字段声离,可以用maxlength指定輸入值的最大長(zhǎng)度。
    • range:用于輸入不精確值控件瘫怜。
    • reset:用于將表單所內(nèi)容設(shè)置為缺省值的按鈕术徊。
    • submit:用于提交表單的按鈕。
    • search:用于輸入搜索字符串的單行文本字段鲸湃,如果換行會(huì)從輸入的值中自動(dòng)移除赠涮。
    • text:?jiǎn)涡凶侄危瑩Q行會(huì)將自動(dòng)從輸入的值中移除唤锉。
  • accept:如果該元素的 type 屬性的值是file,則該屬性表明了服務(wù)器端可接受的文件類型世囊;否則它將被忽略。
  • autocomplete:設(shè)置是否自動(dòng)填充窿祥,如果type屬性的值是hidden株憾、checkbox、radio晒衩、file嗤瞎,或?yàn)榘粹o類型(button、submit听系、reset贝奇、image),則本屬性被忽略靠胜。
  • autofocus:設(shè)置在頁(yè)面加載時(shí)自動(dòng)獲得焦點(diǎn)掉瞳,如果type屬性設(shè)置為隱藏則不能應(yīng)用毕源。
  • autosave:設(shè)置保存填寫(xiě)數(shù)據(jù),如果type的屬性的值是search陕习,當(dāng)頁(yè)面加載時(shí)霎褐,之前的搜索項(xiàng)目會(huì)在下拉菜單中出現(xiàn)。
  • checked:如果該元素的type屬性的值為radio或者checkbox该镣,則該布爾屬性的存在與否表明了該控件是否是默認(rèn)選擇狀態(tài)冻璃。
  • disabled:表示此控件被禁用,在禁用的控件中损合, click事件將不會(huì)被分發(fā)省艳,且禁用的控件的值在提交表單時(shí)也不會(huì)被提交 。如果type屬性為hidden嫁审,此屬性將被忽略跋炕。
  • form:設(shè)置與此控件關(guān)聯(lián)的<form>表單,該屬性的值與所關(guān)聯(lián)的<form>的id一致土居。
  • formaction:表示處理<input>提交信息的程序的URI枣购,如果指定了,將重寫(xiě)<input>所屬<form>的action屬性擦耀。
  • formenctype:如果<input>的類型是submit或image棉圈,此屬性值指定提交表單到服務(wù)器的內(nèi)容類型,如果指定了眷蜓,將重寫(xiě)所屬<form>的enctype屬性分瘾。
  • formmethod:如果<input>的類型是submit或image,此屬性指定了提交表單的HTTP方法吁系。
  • height: 如果type屬性是image德召,此屬性指定image的顯示高度。
  • width:如果type屬性是image汽纤,此屬性指定image的顯示寬度上岗。
  • list:這個(gè)屬性可為用戶預(yù)設(shè)一組輸入選項(xiàng),其值與同一文檔中的 <datalist>的id一致蕴坪。
  • max:設(shè)置日期或數(shù)字的最大值肴掷。
  • min:設(shè)置日期或數(shù)字的最小值。
  • multiple:當(dāng)type屬性為email或file時(shí)背传,設(shè)置用戶是否可以輸入多個(gè)值呆瞻。
  • name:設(shè)置控件的名稱。
  • pattern:檢查輸入值的正則表達(dá)式径玖。
  • placeholder:提示用戶可能的輸入值痴脾。
  • readonly:設(shè)置輸入值是否不可修改;如果type是hidden梳星,range赞赖,color滚朵,checkbox,radio前域,file或button始绍,則該屬性可忽略。
  • required:設(shè)置用戶在提交表單時(shí)該控件的值必填话侄。
  • spellcheck:設(shè)置拼寫(xiě)檢查。
  • src:如果type為image学赛,該屬性設(shè)置了image的source年堆。
  • value:設(shè)置控件的初始值,除了type是checkbox或radio時(shí)必須指定value的值盏浇,其他情況下該屬性是可選的变丧。
2.<button>

<button>表示一個(gè)可以點(diǎn)擊的按鈕,<button>元素比<input>元素更易樣式化绢掰,<button>元素內(nèi)部可以添加內(nèi)聯(lián)HTML內(nèi)容(如<em>痒蓬,<strong> 甚至<img>),并使用:after和:before偽元素實(shí)現(xiàn)復(fù)雜的渲染滴劲。但是不可以放圖像映射攻晒,因?yàn)樗鼘?duì)鼠標(biāo)和鍵盤(pán)敏感的動(dòng)作會(huì)干擾按鈕的行為。

<button>有如下常見(jiàn)屬性:

  • autofocus:一個(gè)布爾屬性班挖,規(guī)定頁(yè)面加載時(shí)按鈕自動(dòng)獲得輸入焦點(diǎn)鲁捏。
  • disabled:設(shè)置用戶不能與按鈕進(jìn)行交互。
  • form:表示<button>元素關(guān)聯(lián)的<form>元素(它的表單擁有者)萧芙。
  • formaction:表示處理<button>提交信息的程序的URI给梅,如果指定了,將重寫(xiě)<button>所屬<form>的action屬性双揪。
  • formenctype:如果<button>是的類型是submit动羽,此屬性值指定提交表單到服務(wù)器的內(nèi)容類型。如果指定了渔期,將重寫(xiě)<button>所屬<form>的enctype屬性运吓。
  • formnovalidate:此屬性指定<button>提交時(shí)不需要驗(yàn)證。如果指定了擎场,它會(huì)重寫(xiě)<button>所屬<form>的novalidate屬性羽德。
  • formtarget:如果<button>是submit類型,此屬性指定表單數(shù)據(jù)提交后在哪里顯示響應(yīng)迅办。如果指定了宅静,它會(huì)重寫(xiě)<button>所屬<form>的target屬性。
  • name:指定<button>的名稱站欺。
  • type:指定<button>的類型姨夹。包括:submit纤垂,reset,button和menu磷账。
  • value:指定<button>的初始值峭沦。
3.<select><optgroup>逃糟,<option>吼鱼,<datalist>

<select>可創(chuàng)建選項(xiàng)菜單,菜單內(nèi)的選項(xiàng)為<option>绰咽,可由<optgroup>分組菇肃。
<select>具有如下屬性:

  • autofocus:讓一個(gè)對(duì)象在頁(yè)面加載后自動(dòng)獲得焦點(diǎn)。
  • disabled:禁用下拉列表取募。
  • form:指定<select>所關(guān)聯(lián)的<form>表單琐谤。
  • multiple:設(shè)置select是否可以多選,默認(rèn)為單選玩敏。
  • name:指定控件名稱斗忌。
  • required:規(guī)定用戶提交表單時(shí),select的值不能為空旺聚。
  • size:規(guī)定下拉列表可見(jiàn)選項(xiàng)的數(shù)量织阳。
    <optgroup>會(huì)創(chuàng)建包含在<select>中的一組<option>選項(xiàng),有兩個(gè)屬性:
  • disabled 該選項(xiàng)組中的選項(xiàng)被禁用翻屈。
  • label 設(shè)置選項(xiàng)組的名字陈哑。
    <option>可以在設(shè)置彈出窗口或其他項(xiàng)目列表中的菜單項(xiàng),有如下屬性:
  • disabled:設(shè)置選項(xiàng)不可選伸眶。
  • label:表示選項(xiàng)含義惊窖。
  • selected:設(shè)置初始被選中的選項(xiàng)。
  • value:設(shè)置選項(xiàng)被選中時(shí)厘贼,提交給表單的值界酒。
    例如:
<select>
  <optgroup label="Group 1">
    <option>Option 1.1</option>
  </optgroup> 
  <optgroup label="Group 2">
    <option disabled>Option 2.1</option>
    <option selected>Option 2.2</option>
  </optgroup>
</select>

<datalist>包含了一組<option>元素,規(guī)定了輸入域的選項(xiàng)列表嘴秸。如果需要把<datalist>綁定到輸入域毁欣,則輸入域的list屬性需引用<datalist>的id,<option>元素一定要設(shè)置value的值岳掐。
例如:

<input list="list" name="input">
<datalist id="list">
    <option value="1">
    <option value="2">
    <option value="3">
</datalist>
4.<label>

<label>元素用于為表單控件設(shè)置標(biāo)注凭疮,建立文字標(biāo)簽與表單控件的關(guān)系,點(diǎn)擊<label>元素串述,相應(yīng)的表單控件會(huì)獲得焦點(diǎn)执解。
<label>元素具有如下屬性:

  • accesskey:設(shè)置從鍵盤(pán)訪問(wèn)該元素的快捷鍵。
  • for:規(guī)定<label>綁定到哪個(gè)表單元素纲酗,for的值設(shè)置為該元素的id衰腌。
  • form:指定<label>所屬的<form>新蟆。
    用法如下:
<!-- for舉例 -->
<label for="option1">option1</label>
<input type="radio" name='option' id='option1'>
<!-- 嵌套舉例 -->
<label>option2<input type="radio" name='option'></label>
5.<textarea>

<textarea>表示一個(gè)多行文本編輯控件,包含如下屬性:

  • autocomplete:設(shè)置是否自動(dòng)補(bǔ)全右蕊。
  • autofocus:設(shè)置頁(yè)面加載后自動(dòng)獲得焦點(diǎn)琼稻。
  • cols:設(shè)置文本域的可視列數(shù)(高度)。
  • rows:設(shè)置文本域的可視行數(shù)(高度)饶囚。
  • disabled:設(shè)置禁用文本域帕翻。
  • form:指定所屬<form>
  • maxlength:設(shè)置允許用戶輸入字符的最大長(zhǎng)度(Unicode)萝风。
  • minlength:設(shè)置允許用戶輸入字符的最小長(zhǎng)度(Unicode)熊咽。
  • name:設(shè)置元素的名稱。
  • placeholder:占位符闹丐,用于提示用戶輸入的內(nèi)容。
  • readonly:設(shè)置用戶不可以修改文本被因,但是可以點(diǎn)擊和選擇卿拴。
  • required:提示用戶該元素必填。
  • wrap:指定文本換行的方式梨与,有兩個(gè)取值:hard(文本達(dá)到最大寬度時(shí)堕花,瀏覽器自動(dòng)插入換行符),soft(文本達(dá)到最大寬度時(shí)不會(huì)自動(dòng)插入換行符)粥鞋。
6.<fieldset><legend>

<fieldset>通常用于對(duì)表單內(nèi)的控件進(jìn)行分組缘挽,<legend>用于給<fieldset>命名。

  <fieldset>
    <legend>Title</legend>
    <input type="radio" id="radio"> <label for="radio">Click me</label>
  </fieldset>


除以上一些常見(jiàn)控件外呻粹,還有其他控件例如:
<progress>用于顯示一項(xiàng)任務(wù)的完成進(jìn)度壕曼;
<output>定義一個(gè)用戶的操作或者計(jì)算的結(jié)果;
<meter>顯示已知范圍的標(biāo)量值或者分?jǐn)?shù)值等浊。
需結(jié)合日常開(kāi)發(fā)需求不斷深入學(xué)習(xí)腮郊。

參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市筹燕,隨后出現(xiàn)的幾起案子轧飞,更是在濱河造成了極大的恐慌,老刑警劉巖撒踪,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件过咬,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡制妄,警方通過(guò)查閱死者的電腦和手機(jī)掸绞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)忍捡,“玉大人集漾,你說(shuō)我怎么就攤上這事切黔。” “怎么了具篇?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵纬霞,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我驱显,道長(zhǎng)诗芜,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任埃疫,我火速辦了婚禮伏恐,結(jié)果婚禮上恩够,老公的妹妹穿的比我還像新娘纵柿。我一直安慰自己寂殉,他們只是感情好扣孟,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布费坊。 她就那樣靜靜地躺著资柔,像睡著了一般溉苛。 火紅的嫁衣襯著肌膚如雪渺绒。 梳的紋絲不亂的頭發(fā)上仅炊,一...
    開(kāi)封第一講書(shū)人閱讀 51,754評(píng)論 1 307
  • 那天斗幼,我揣著相機(jī)與錄音,去河邊找鬼抚垄。 笑死蜕窿,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的呆馁。 我是一名探鬼主播桐经,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼浙滤!你這毒婦竟也來(lái)了次询?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瓷叫,失蹤者是張志新(化名)和其女友劉穎屯吊,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體摹菠,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盒卸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了次氨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蔽介。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出虹蓄,到底是詐尸還是另有隱情犀呼,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布薇组,位于F島的核電站外臂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏律胀。R本人自食惡果不足惜宋光,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望炭菌。 院中可真熱鬧罪佳,春花似錦、人聲如沸黑低。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)克握。三九已至第练,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間玛荞,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工呕寝, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留勋眯,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓下梢,卻偏偏與公主長(zhǎng)得像客蹋,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子孽江,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 什么是Form表單? Form 表單是一組用來(lái)收集用戶輸入信息的html 標(biāo)簽讶坯,可以對(duì)用戶輸入的信息進(jìn)行收集 效驗(yàn)...
    sirai閱讀 1,574評(píng)論 0 0
  • 表單用于向服務(wù)器傳輸數(shù)據(jù) <form>標(biāo)簽用于把表單里的數(shù)據(jù)上傳到指定的位置。 form中常用的屬性及用途: ac...
    饑人谷_木頭先生愛(ài)喝水閱讀 446評(píng)論 0 0
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理岗屏,服務(wù)發(fā)現(xiàn)辆琅,斷路器,智...
    卡卡羅2017閱讀 134,672評(píng)論 18 139
  • 本人做php的,最近發(fā)現(xiàn)JS真的是博大精深啊,比PHP難.在HTML中这刷,表單是由form元素來(lái)表示的婉烟,但是在jav...
    linfree閱讀 2,165評(píng)論 3 17
  • ¥開(kāi)啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開(kāi)一個(gè)線程,因...
    小菜c閱讀 6,426評(píng)論 0 17