input具有很多属性,比较常用的有type,value,name,placeholder,multiple,checked等。对于其中的name、value、label相关以及标签外的文字,我一直是懵懵懂懂,今天总算弄了个清楚。

1)name属性 

定义:name 属性规定 input 元素的名称。

用法:name 属性用于对提交到服务器后的表单数据进行标识,或者在客户端通过 JavaScript 引用表单数据。

注释:只有设置了 name 属性的表单元素才能在提交表单时传递它们的值。

也就是说,name对于页面显示是没啥用的(加不加都不影响页面显示),而是用于和服务器交互或者编写js时方便引用。

2)value属性

定义:value 属性为 input 元素设定值。

用法:对于不同的输入类型,value 属性的用法也不同:

  • type="button", "reset", "submit" - 定义按钮上的显示的文本

<input type="button" value="按钮">按钮文字


 

input没有value属性 jquery获取不到值_文本输入框

    • type="text", "password", "hidden" - 定义输入字段的初始值
    <input type="text" value="初始文本">标签外


      

    input没有value属性 jquery获取不到值_表单_02

      • type="checkbox", "radio", "image" - 定义与输入相关联的值
      <input type="radio" value="按钮">按钮文字



      input没有value属性 jquery获取不到值_控件_03

      注意:此时显示在页面上的是“按钮文字”(标签外的文字),而此时的value的作用主要是用于js中的交互操作,所以此时的value一般设置为与输入相关的值。例如:


      <input type="radio" value="male">男
       
       
      注释:<input type="checkbox"> 和 <input type="radio"> 中必须设置 value 属性。
      3)label
      <label> 标签为 input 元素定义标注(标记)。例如:
       
       
      <label>请输入邮箱地址:</label>
            <input type="text" name="email" value="这是一个文本输入框"/>请输入邮箱地址:
           <input type="text" name="email" value="这是一个文本输入框"/>



      以上两种方式显示结果相同,均为下图所示:

      input没有value属性 jquery获取不到值_控件_04

      所以:label 元素不会向用户呈现任何特殊效果。不过,它为鼠标用户改进了可用性。如果您在 label 元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。<label> 标签的 for 属性应当与相关元素的 id 属性相同。

      上面这句话是什么意思呢?就是说,若按如下写法,当鼠标点击“请输入邮箱地址”时,效果和点击输入框是一样的(即会focus到输入框),也就是将label与相应的input绑定在一起了。



      <label for="email">请输入邮箱地址:</label>
      <input type="text" name="email" id="emial" value="这是一个文本输入框"/>