首页 > 代码库 > 【前端】 html基础知识 表单

【前端】 html基础知识 表单

html 表单

  表单的标签是<form>,用于给网站的后台提交数据。提交的数据格式原本是什么样不太清楚,以python的flask框架来看,我从表单中得到的数据是一个字典(flask.request.form),可以从中获取到表单中提交上来的数据。字典的键是各个表单元素的name属性的值,值则是用户的输入。

 

■  <form>

  form本身具有一些属性,比如action指定了一个url,就是当把表单中的数据提交上去后由url指定的程序来处理这些数据。这个指定的程序可以是一个.php脚本之类的文件,也可以是比如flask框架中的一个路径处理函数。其他属性还有:

  action  指定了一个程序来处理

  method  指定这个表单的提交方法,可选post,get等

  target  指定action中的url的目标

  name  指定一个表单的名称

  等等

 

■  <input>

  基本的表单组件很多都是input标签,不同的是其type属性的值。type属性的值决定了这个表单元素到底是个什么东西。比如:

  <input type="text" value="http://www.mamicode.com/default_text" name="test_text" maxlength="设置输入最长长度" size="设置本身输入框长度" />  一个明文输入框,默认值是default_text

  <input type="password" name="test_passwd" maxlength="..." size="..." />  一个密码输入框

  <input type="submit" value="http://www.mamicode.com/按钮上显示的文字" name="test_submit" />  一个提交按钮,按下提交按钮后提交整个表单的数据到服务器,和submit类似的,若type是个reset则是个清空按钮

  <input type="radio" name="group1" value="http://www.mamicode.com/radio_info" checked>some label text</input>  一个单选项,对于多个单选项,所有name一样的属于同一个组,一个组的所有选项只能有一个被选中,value是提交数据时该单选项的值,checked标识了该选项被选中,如果同一组内多个radio都有checked的话以最后设置的那个为准。某个radio没有选的话就不会传这个元素的键值对到后端去。

  <input type="checkbox" name="group2" value="http://www.mamicode.com/check_info" checked>some label text</input>  一个复选框,属性和radio类似,但是不存在一个组只能选一个,value属性写的一些信息,作为这个复选框元素的值随其他数据一起提交到后端。没有选的话同样不传数据

  <input type="number" name="quantity" min="1" max="5">  一个数字输入框,可以设置最小值和最大值

  <input type="file" id="file_id" name="file_name">  构造一个文件上传的部件(具体怎么上传,如何和后端互动还不清楚)

  以上是经典html中的一些input类型,html5中支持更多类似于日期,颜色等的input。http://www.w3school.com.cn/html/html_form_input_types.asp

  此外,input标签还有很多单独的属性用来设置它的一些特性,比如上面的单选多选框中提到的checked属性,除了checked还有:

    readonly  设置某个input只读不可编辑

    disabled  设置某个input不可用不可编辑

    size,maxlength这些属性上面提到过了,就不说了

 

■  其他表单元素

  上面提到了input,input已经有很多表单元素的形式了,除了那些input,我们还有以下一些元素

  <select>  下拉列表,里面要添加<option>,option可以设置selected,value等属性,提示用文字写在option里面

  <select multiple>  多选框列表

<select name="cars">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select>

 

  <textarea>  多行文本框,可以设置属性诸如name,rows,cols等(rows和cols指定初始状态的行列数),也可以设置disabled,readonly,maxlength等

  <button>  独立按钮,可以设置onclick等属性が,反正要用jQuery的话就无所谓onclick了

 

【前端】 html基础知识 表单