Input元素的其他屬性

除了type屬性之外,<input/>標記還可以定義很多其他的屬性,以實現(xiàn)不同的功能。

1.autofocus屬性

在HTML5中,autofocus屬性用于指定頁面加載后是否自動獲取焦點,將標記的屬性值指定為true時,表示頁面加載完畢后會自動獲取該焦點。

下面通過案例2-39來演示autofocus屬性的使用,如圖2-40所示。

例2-39  example39.html

 

<!DOCTYPE  html>
 <html>
 <head>
     <meta  charset="utf-8">
     <title>autofocus
屬性的使用</title>
 </head>
 <body>
 <form action="#" method="get">
     請輸入搜索關(guān)鍵詞:
     <input type="text"  name="user_name"    autocomplete="off"    autofocus="true"/><br/>
     <input type="submit"  value="提交" />
 </form>
 </body>
 </html>

Input元素的其他屬性

                        圖2-40  autofocus屬性的使用 

Input元素的其他屬性

                               圖2-41 form屬性的使用

從圖2-40可以看出,<input />元素輸入框在頁面加載后自動獲取焦點,并且關(guān)閉了自動完成功能。

2.form屬性

在HTML5之前,如果用戶要提交一個表單,必須把相關(guān)的控件元素都放在表單內(nèi)部,即<form>和</form>標簽之間。在提交表單時,會將頁面中不是表單子元素的控件直接忽略掉。

下面通過一個案例2-40來演示form屬性的使用,如圖2-41所示。

例2-40  example40.html

 

<!DOCTYPE  html>

 

<html>

 

<head>

 

    <meta charset="utf-8">

 

    <title>form屬性的使用</title>

 

</head>

 

<body>

 

<form  action="#"   method="get"   id="user_form">

 

    請輸入您的姓名:<input  type="text"    name="first_name"/>

 

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

 

</form>

 

    <p>下面的輸入框在form元素外,但因為指定了form屬性為表單的id,

 

        所以該輸入框仍然屬于表單的一部分。</p>

 

    請輸入您的昵稱:

 

    <input type="text"  name="last_name"    form="user_form"/><br/>

 

</body>

 

</html>

 

在例2-40中,分別添加兩個<input/>元素,并且第二個<input />元素不在<form> </form>標記中。另外,指定第二個<input/>元素的form屬性值為該表單的id。

此時,如果在輸入框中分別輸入姓名和昵稱,則first_name和last_name將分別被賦值為輸入的值。例如,在姓名處輸入“李明”,昵稱處輸入“小明”, 效果如圖2-42所示。

Input元素的其他屬性

圖2-42 form屬性的使用

3. list屬性

通過datalist元素實現(xiàn)數(shù)據(jù)列表的下拉效果。而list屬性用于指定輸入框所綁定的datalist元素,其值是某個datalist元素的id。

下面通過案例2-41來進一步學習list屬性的使用,如圖2-43所示。

例2-41example141.html

 

<!DOCTYPE  html>
 <html>
 <head>
     <meta  charset="utf-8">
     <title>list
屬性的使用</title>
 </head>
 <body>
   <form action="#"    method="get">
     請輸入網(wǎng)址:<input  type="url"    list="url_list"    name="weburl"/>
     <datalist  id="url_list">
      <option label="新浪"   value="http://www.sina.com.cn"></option>
       <option label="搜狐"   value="http://www.sohu.com"></option>
       <option label="網(wǎng)易"   value="http://www.126.net/"></option>
     </datalist>
     <input  type="submit"    value="提交"/>
   </form>
 </body>
 </html>

 

Input元素的其他屬性

圖2-43 list屬性的使用

4.  multiple屬性

  multiple屬性指定輸入框可以選擇多個值,該屬性適用于email和file類型的input元素。multiple屬性用于email類型的input元素時,表示可以向文本框中輸入多個E-mail地址,多個地址之間通過逗號隔開;multiple屬性用于file類型的input元素時,表示可以選擇多個文件。下面通過案例2-42來進一步演示multiple屬性的使用,如圖2-44所示。

例2-42example42.html

 

<!DOCTYPE  html>
 <html>
 <head>
     <meta  charset="utf-8">
     <title>multiple
屬性的使用</title>
 </head>
 <body>
 <form action="#"   method="get">
     電子郵箱:<input  type="email"    name="myemail"     multiple="true"/>

 

&nbsp;&nbsp;(如果電子郵箱有多個,請使用逗號分隔)<br/><br/>
  上傳照片:<input    type="file"   name="selfile"    multiple="true"/>

 

<br/><br/>
     <input type="submit"  value="
提交"/>
 </form>
 </body>
 </html>

 

Input元素的其他屬性

圖2-44 multiple屬性的使用

5. min、max和step屬性

HTML5中的min、max和step屬性用于為包含數(shù)字或日期的input輸入類型規(guī)定限值,也就是給這些類型的輸入框加一個數(shù)值的約束,適用于date、pickers、number和range標簽。具體屬性說明如下:

max:規(guī)定輸入框所允許的最大輸入值。

min:規(guī)定輸入框所允許的最小輸入值。

step:為輸入框規(guī)定合法的數(shù)字間隔,如果不設(shè)置,默認值是1。

6.pattern屬性

pattern屬性用于驗證input類型輸入框中,用戶輸入的內(nèi)容是否與所定義的正則表達式相匹配。pattern屬性適用于的類型是:text、search、url、tel、email和password的<input/>標記。常用的正則表達式如下表2-6所示。

表2-6  常用的正則表達式

                                                                                       

 

正則表達式

 
 

說明

 
 

^[0-9]*$

 
 

數(shù)字

 
 

^\d{n}$

 
 

n位的數(shù)字

 
 

^\d{n,}$

 
 

至少n位的數(shù)字

 
 

^\d{m,n}$

 
 

m-n位的數(shù)字

 
 

^(0|[1-9][0-9]*)$

 
 

零和非零開頭的數(shù)字

 
 

^([1-9][0-9]*)+(.[0-9]{1,2})?$

 
 

非零開頭的最多帶兩位小數(shù)的數(shù)字

 
 

^(\-|\+)?\d+(\.\d+)?$

 
 

正數(shù)、負數(shù)、和小數(shù)

 
 

^\d+$ 或 ^[1-9]\d*|0$

 
 

非負整數(shù)

 
 

^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$

 
 

非正整數(shù)

 
 

^[\u4e00-\u9fa5]{0,}$

 
 

漢字

 
 

^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$

 
 

英文和數(shù)字

 
 

^[A-Za-z]+$

 
 

由26個英文字母組成的字符串

 
 

^[A-Za-z0-9]+$

 
 

由數(shù)字和26個英文字母組成的字符串

 
 

^\w+$ 或 ^\w{3,20}$

 
 

由數(shù)字、26個英文字母或者下劃線組成的字符串

 
 

^[\u4E00-\u9FA5A-Za-z0-9_]+$

 
 

中文、英文、數(shù)字包括下劃線

 
 

^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

 
 

Email地址

 
 

[a-zA-z]+://[^\s]* 或  ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$

 
 

URL地址

 
 

^\d{15}|\d{18}$

 
 

身份證號(15位、18位數(shù)字)

 
 

^([0-9]){7,18}(x|X)?$ 或  ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$

 
 

以數(shù)字、字母x結(jié)尾的短身份證號碼

 
 

^[a-zA-Z][a-zA-Z0-9_]{4,15}$

 
 

帳號是否合法(字母開頭,允許5-16字節(jié),

 

允許字母數(shù)字下劃線)

 
 

^[a-zA-Z]\w{5,17}$

 
 

密碼(以字母開頭,長度在6~18之間,

 

只能包含字母、數(shù)字和下劃線)

 

了解了pattern屬性以及常用的正則表達式,下面通過案例2-43來進行演示,如圖2-45所示。

例2-43  example43.html

 

<!DOCTYPE html>
 <html>
 <head>
     <meta  charset="utf-8">
     <title>pattern
屬性</title>
 </head>
 <body>
    <form action="#"  method="get">
    賬&nbsp;&nbsp;&nbsp;&nbsp;號:

    <input type="text" name="username"  pattern="^[a-zA-Z][a-zA-Z0-9_]{4,15}$" />

(     以字母開頭,允許5-16字節(jié),允許字母數(shù)字下劃線)<br/>
     密&nbsp;&nbsp;&nbsp;&nbsp;碼:

   <input type="password" name="pwd"  pattern="^[a-zA-Z]\w{5,17}$" />

   (以字母開頭,長度在6~18之間,只能包含字母、數(shù)字和下劃線)<br/>
      Email地址:

      <input  type="email" name="myemail"  pattern="^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"/>
     <input type="submit"  value="提交"/>
     </form>
 </body>
 </html>

 

Input元素的其他屬性

圖2-45  pattern屬性的使用

7.placeholder屬性

placeholder屬性用于為input類型的輸入框提供相關(guān)提示信息,以描述輸入框期待用戶輸入何種內(nèi)容。在輸入框為空時顯式出現(xiàn),而當輸入框獲得焦點時則會消失。示例代碼如下:


請輸入郵政編碼:<input  type="text" name="code" pattern="[0-9]{6}" placeholder="請輸入6位數(shù)的郵政編碼" />

 

8. required屬性

HTML5中的輸入類型,不會自動判斷用戶是否在輸入框中輸入了內(nèi)容,如果開發(fā)者要求輸入框中的內(nèi)容是必須填寫的,那么需要為input元素指定required屬性。required屬性用于規(guī)定輸入框填寫的內(nèi)容不能為空,否則不允許用戶提交表單。示例代碼如下:

 

<input  type="text" name="user_name"  required="required"/>

 

2.7.5其他表單元素

1.textarea元素

    當定義input控件的type屬性值為text時,可以創(chuàng)建一個單行文本輸入框。但是,如果需要輸入大量的信息,單行文本輸入框就不再適用,為此HTML語言提供了<textarea></textarea>標記。通過textarea控件可以輕松地創(chuàng)建多行文本輸入框,其基本語法格式如下:

 

<textarea cols="每行中的字符數(shù)" rows="顯示的行數(shù)">

    文本內(nèi)容

</textarea>

 

<textarea>元素除了cols和rows屬性外,還擁有幾個可選屬性,分別為disabled、name和readonly,詳見下表2-7所示。

表2-7<textarea>元素屬性                       

 

屬性

 
 

屬性值

 
 

描述

 
 

name

 
 

由用戶自定義

 
 

控件的名稱

 
 

readonly

 
 

readonly

 
 

該控件內(nèi)容為只讀(不能編輯修改)

 
 

disabled

 
 

disabled

 
 

第一次加載頁面時禁用該控件(顯示為灰色)

 

下面通過案例2-44來演示<textarea>元素的使用,如圖2-46所示。

例2-44  example2-44.html

 

<!DOCTYPE  html>
 <html>
 <head>
     <meta  charset="utf-8">
     <title>textarea
控件</title>
 </head>
 <body>
 <form action="#" method="post">
     評論:<br  />
     <textarea cols="60"  rows="8">
 評論的時候,請遵紀守法并注意語言文明,多給文檔分享人一些支持。
     </textarea><br />
     <input type="submit"  value="提交"/>
 </form>
 </body>
 </html>

 

Input元素的其他屬性 

圖2-46 textarea控件使用

Input元素的其他屬性

Input元素的其他屬性

     圖2-47 select控件效果

1.select控件

瀏覽網(wǎng)頁時,經(jīng)常會看到包含多個選項的下拉菜單,例如選擇所在的城市、出生年月、興趣愛好等。如圖2-47左所示即為一個下拉菜單,當點擊下拉三角時,會出現(xiàn)一個選擇列表,如圖2-47右所示。

使用select控件定義下拉菜單的基本語法格式如下:


 

<select>

 

         <option>選項1</option>

 

         <option>選項2</option>

 

         <option>選項3</option>

 

       ...

 

     </select>

 

在上面的語法中,<select></select>標記用于在表單中添加一個下拉菜單,<option></option>標記嵌套在<select></select>標記中,用于定義下拉菜單中的具體選項,每對<select></select>中至少應(yīng)包含一對<option></option>。在HTML中,可以為<select>和<option>標記定義屬性,以改變下拉菜單的外觀顯示效果,具體如下表2-8所示。

表2-8 下拉菜單屬性

                     

 

標記名

 
 

常用屬性

 
 

描述

 
 

<select>

 
 

size

 
 

指定下拉菜單的可見選項數(shù)(取值為正整數(shù))。

 
 

multiple

 
 

定義multiple="multiple"時,下拉菜單將具有多項選擇的功能,方法為按住Ctrl鍵的同時選擇多項。

 
 

<option>

 
 

selected

 
 

定義selected  =" selected "時,當前項即為默認選中項。

 

下面通過案例2-45來演示幾種不同的下拉菜單效果,如圖2-48所示。

例2-45   example45.html

 

<!DOCTYPE html>

 

<html>

 

<head>

 

     <meta charset="utf-8">

 

     <title>select控件</title>

 

</head>

 

<body>

 

<form action="#"  method="post">

 

    所在校區(qū):

 

     <select>                              <!--最基本的下拉菜單-->

 

         <option>-請選擇-</option>

 

         <option>北京</option>

 

         <option>上海</option>

 

         <option>廣州</option>

 

         <option>武漢</option>

 

         <option>成都</option>

 

     </select>

 

     &nbsp;&nbsp;特長(單選):

 

     <select>

 

         <option>唱歌</option>

 

         <option selected="selected">畫畫</option>  

 

<!--設(shè)置默認選中項-->

 

         <option>跳舞</option>

 

     </select>

 

     &nbsp;&nbsp;愛好(多選):

 

     <select multiple="multiple"    size="4">         

 

 <!--設(shè)置多選和可見選項數(shù)-->

 

         <option>讀書</option>

 

         <option selected="selected">寫代碼</option>

 

<!--設(shè)置默認選中項-->

 

         <option>旅行</option>

 

         <option selected="selected">聽音樂</option>

 

<!--設(shè)置默認選中項-->

 

         <option>踢球</option>

 

     </select><br /><br />

 

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

 

</form>

 

</body>

 

</html>

 

Input元素的其他屬性

圖2-48 select控件效果

3.datalist元素

datalist元素用于定義輸入框的選項列表,列表通過datalist內(nèi)的option元素進行創(chuàng)建。如果用戶不希望從列表中選擇某項,也可以自行輸入其他內(nèi)容。datalist元素通常與input元素配合使用,來定義input的取值。在使用<datalist>標記時,需要通過id屬性為其指定一個唯一的標識,然后為input元素指定list屬性,將該屬性值設(shè)置為option元素對應(yīng)的id屬性值即可。下面通過案例2-46來演示datalist元素的使用,如圖2-49所示。

例2-46  example46.html

 

<!DOCTYPE  html>

 

<html>

 

<head>

 

    <meta charset="utf-8">

 

    <title>datalist元素</title>

 

</head>

 

<body>

 

<form  action="#" method="post">

 

    請輸入用戶名:<input type="text"   list="namelist"/>

 

    <datalist id="namelist">

 

        <option>admin</option>

 

        <option>lucy</option>

 

        <option>lily</option>

 

    </datalist>

 

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

 

</form>

 

</body>

 

</html>

 

Input元素的其他屬性

圖2-49  datalist元素

4.keygen元素

keygen元素用于表單的密鑰生成器,能夠使用戶驗證更為安全、可靠。當提交表單時會生成兩個鍵:一個是私鑰,它存儲在客戶端;一個是公鑰,它被發(fā)送到服務(wù)器,驗證用戶的客戶端證書。如果新的瀏覽器能夠?qū)eygen元素的支持度再增強一些,則有望使其成為一種有用的安全標準。keygen元素擁有多個屬性,常用屬性及說明如下表2-9所示。

表2-9keygen元素屬性                          

 

屬性

 
 

說明

 
 

autofocus

 
 

使keygen字段在頁面加載時獲得焦點。

 
 

challenge

 
 

如果使用,則將keygen的值設(shè)置為在提交時詢問。

 
 

disabled

 
 

禁用 keytag 字段。

 
 

form

 
 

定義該 keygen  字段所屬的一個或多個表單。

 
 

keytype

 
 

定義 keytype。rsa 生成 RSA 密鑰。

 
 

name

 
 

定義 keygen 元素的唯一名稱。name 屬性用于在提交表單時搜集字段的值。

 

keygen元素示例代碼如下:

 

請選擇加密強度:<keygen  name="security"/>

 

5.output元素

output元素用于不同類型的輸出,可以在瀏覽器中顯示計算結(jié)果或腳本輸出。其常用屬性有3個,具體如下表2-10所示。

表2-10 output元素屬性

               

 

屬性

 
 

說明

 
 

for

 
 

定義輸出域相關(guān)的一個或多個元素。

 
 

form

 
 

定義輸入字段所屬的一個或多個表單。

 
 

name

 
 

定義對象的唯一名稱。

 
<form oninput="x.value=parseInt(a.value)+parseInt(b.value)">0
   <input type="range" id="a" value="50">100
   +<input type="number" id="b" value="50">
   =<output name="x" for="a b"></output>
</form>

執(zhí)行計算然后在 <output> 元素中顯示結(jié)果:

Input元素的其他屬性