Input元素的其他属性

除了type属性之外,<input/>标记还可以定义很多其他的属性,以实现不同的功能。

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">
     请输入搜索关键词:
     <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 />元素输入框在页面加载后自动获取焦点,并且关闭了自动完成功能。

2.form属性

在HTML5之前,如果用户要提交一个表单,必须把相关的控件元素都放在表单内部,即<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元素实现数据列表的下拉效果。而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">
     请输入网址:<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="网易"   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属性用于为包含数字或日期的input输入类型规定限值,也就是给这些类型的输入框加一个数值的约束,适用于date、pickers、number和range标签。具体属性说明如下:

max:规定输入框所允许的最大输入值。

min:规定输入框所允许的最小输入值。

step:为输入框规定合法的数字间隔,如果不设置,默认值是1。

6.pattern属性

pattern属性用于验证input类型输入框中,用户输入的内容是否与所定义的正则表达式相匹配。pattern属性适用于的类型是:text、search、url、tel、email和password的<input/>标记。常用的正则表达式如下表2-6所示。

表2-6  常用的正则表达式

                                                                                       

 

正则表达式

 
 

说明

 
 

^[0-9]*$

 
 

数字

 
 

^\d{n}$

 
 

n位的数字

 
 

^\d{n,}$

 
 

至少n位的数字

 
 

^\d{m,n}$

 
 

m-n位的数字

 
 

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

 
 

零和非零开头的数字

 
 

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

 
 

非零开头的最多带两位小数的数字

 
 

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

 
 

正数、负数、和小数

 
 

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

 
 

非负整数

 
 

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

 
 

非正整数

 
 

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

 
 

汉字

 
 

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

 
 

英文和数字

 
 

^[A-Za-z]+$

 
 

由26个英文字母组成的字符串

 
 

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

 
 

由数字和26个英文字母组成的字符串

 
 

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

 
 

由数字、26个英文字母或者下划线组成的字符串

 
 

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

 
 

中文、英文、数字包括下划线

 
 

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

 
 

Email地址

 
 

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

 
 

URL地址

 
 

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

 
 

身份证号(15位、18位数字)

 
 

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

 
 

以数字、字母x结尾的短身份证号码

 
 

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

 
 

帐号是否合法(字母开头,允许5-16字节,

 

允许字母数字下划线)

 
 

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

 
 

密码(以字母开头,长度在6~18之间,

 

只能包含字母、数字和下划线)

 

了解了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字节,允许字母数字下划线)<br/>
     密&nbsp;&nbsp;&nbsp;&nbsp;码:

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

   (以字母开头,长度在6~18之间,只能包含字母、数字和下划线)<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类型的输入框提供相关提示信息,以描述输入框期待用户输入何种内容。在输入框为空时显式出现,而当输入框获得焦点时则会消失。示例代码如下:


请输入邮政编码:<input  type="text" name="code" pattern="[0-9]{6}" placeholder="请输入6位数的邮政编码" />

 

8. required属性

HTML5中的输入类型,不会自动判断用户是否在输入框中输入了内容,如果开发者要求输入框中的内容是必须填写的,那么需要为input元素指定required属性。required属性用于规定输入框填写的内容不能为空,否则不允许用户提交表单。示例代码如下:

 

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

 

2.7.5其他表单元素

1.textarea元素

    当定义input控件的type属性值为text时,可以创建一个单行文本输入框。但是,如果需要输入大量的信息,单行文本输入框就不再适用,为此HTML语言提供了<textarea></textarea>标记。通过textarea控件可以轻松地创建多行文本输入框,其基本语法格式如下:

 

<textarea cols="每行中的字符数" rows="显示的行数">

    文本内容

</textarea>

 

<textarea>元素除了cols和rows属性外,还拥有几个可选属性,分别为disabled、name和readonly,详见下表2-7所示。

表2-7<textarea>元素属性                       

 

属性

 
 

属性值

 
 

描述

 
 

name

 
 

由用户自定义

 
 

控件的名称

 
 

readonly

 
 

readonly

 
 

该控件内容为只读(不能编辑修改)

 
 

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控件

浏览网页时,经常会看到包含多个选项的下拉菜单,例如选择所在的城市、出生年月、兴趣爱好等。如图2-47左所示即为一个下拉菜单,当点击下拉三角时,会出现一个选择列表,如图2-47右所示。

使用select控件定义下拉菜单的基本语法格式如下:


 

<select>

 

         <option>选项1</option>

 

         <option>选项2</option>

 

         <option>选项3</option>

 

       ...

 

     </select>

 

在上面的语法中,<select></select>标记用于在表单中添加一个下拉菜单,<option></option>标记嵌套在<select></select>标记中,用于定义下拉菜单中的具体选项,每对<select></select>中至少应包含一对<option></option>。在HTML中,可以为<select>和<option>标记定义属性,以改变下拉菜单的外观显示效果,具体如下表2-8所示。

表2-8 下拉菜单属性

                     

 

标记名

 
 

常用属性

 
 

描述

 
 

<select>

 
 

size

 
 

指定下拉菜单的可见选项数(取值为正整数)。

 
 

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">

 

    所在校区:

 

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

 

         <option>-请选择-</option>

 

         <option>北京</option>

 

         <option>上海</option>

 

         <option>广州</option>

 

         <option>武汉</option>

 

         <option>成都</option>

 

     </select>

 

     &nbsp;&nbsp;特长(单选):

 

     <select>

 

         <option>唱歌</option>

 

         <option selected="selected">画画</option>  

 

<!--设置默认选中项-->

 

         <option>跳舞</option>

 

     </select>

 

     &nbsp;&nbsp;爱好(多选):

 

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

 

 <!--设置多选和可见选项数-->

 

         <option>读书</option>

 

         <option selected="selected">写代码</option>

 

<!--设置默认选中项-->

 

         <option>旅行</option>

 

         <option selected="selected">听音乐</option>

 

<!--设置默认选中项-->

 

         <option>踢球</option>

 

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

 

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

 

</form>

 

</body>

 

</html>

 

Input元素的其他属性

图2-48 select控件效果

3.datalist元素

datalist元素用于定义输入框的选项列表,列表通过datalist内的option元素进行创建。如果用户不希望从列表中选择某项,也可以自行输入其他内容。datalist元素通常与input元素配合使用,来定义input的取值。在使用<datalist>标记时,需要通过id属性为其指定一个唯一的标识,然后为input元素指定list属性,将该属性值设置为option元素对应的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元素用于表单的密钥生成器,能够使用户验证更为安全、可靠。当提交表单时会生成两个键:一个是私钥,它存储在客户端;一个是公钥,它被发送到服务器,验证用户的客户端证书。如果新的浏览器能够对keygen元素的支持度再增强一些,则有望使其成为一种有用的安全标准。keygen元素拥有多个属性,常用属性及说明如下表2-9所示。

表2-9keygen元素属性                          

 

属性

 
 

说明

 
 

autofocus

 
 

使keygen字段在页面加载时获得焦点。

 
 

challenge

 
 

如果使用,则将keygen的值设置为在提交时询问。

 
 

disabled

 
 

禁用 keytag 字段。

 
 

form

 
 

定义该 keygen  字段所属的一个或多个表单。

 
 

keytype

 
 

定义 keytype。rsa 生成 RSA 密钥。

 
 

name

 
 

定义 keygen 元素的唯一名称。name 属性用于在提交表单时搜集字段的值。

 

keygen元素示例代码如下:

 

请选择加密强度:<keygen  name="security"/>

 

5.output元素

output元素用于不同类型的输出,可以在浏览器中显示计算结果或脚本输出。其常用属性有3个,具体如下表2-10所示。

表2-10 output元素属性

               

 

属性

 
 

说明

 
 

for

 
 

定义输出域相关的一个或多个元素。

 
 

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>

执行计算然后在 <output> 元素中显示结果:

Input元素的其他属性