<form>表单标签

作用:

表单,用于和服务器交互,传输数据就用form表单标签来实现的。

接收html页面上,不同类型的用户输入,用户提交表单时,向服务器传输数据,从而实现用户与服务器的交互

 

下面介绍一下<form>表单标签下可以使用的一些元素、属性:

1、<form>表单标签里面可以包含input元素,而一般使用type=”xxx”,来指定当前input标签使用什么类型的元素进行表单交互。

(除了input还有其他的元素也可使用在<form>表单标签内 如:textarea、select、fieldset和 label 元素。)

 

注意:type类型存在很多种,下面说说几个常用的:

java form表单 html 标签丢失_html

============================================================================

下面说说

<form>表单标签内,使用input元素相关操作:

#简单例子:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
        <title>Title</title>
</head>

<body>
    <form>
        <input type="text">    //实现的就是一个text文本,input输入框
        <input type="text">

    </form>
</body>
</html>

实际效果,就是2个文本输入框。

java form表单 html 标签丢失_html_02

由上可见,input标签下,使用type=“text”可以实现一个文本input输入框。

这里有个问题,两个输入框没有换行展示。(这表明input标签是一个“块级标签”)

那么就如果要让其在一列上,即换行展示,那么就可以加上一个<p>标签

<p><input type="text"></p>
<p><input type="text"></p>

实际效果:

java form表单 html 标签丢失_html_03

注意:

有心的人可能发现了,这样的输入框,像不像一般登录界面的输入框?

没错是的,在这个基础上,加点文字描述。再加上一个提交按钮(使用submit属性)就活脱脱的就是呀!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
        <title>Title</title>
</head>

<body>
    <form>
        <p>账号:<input type="text"></p>
        <p>密码:<input type="text"></p>
        <p><input type="submit" ></p>
    </form>
</body>
</html>

实际效果:

java form表单 html 标签丢失_单选框_04

注意了,在input元素内的写的type=“submit”属性,

就是html页面的“提交”按钮。这里的submit属性是可以使用value值的,用来改变这个提交按钮的文字描述。

<p><input type="submit" value="登录"></p>

实际效果:

java form表单 html 标签丢失_html_05

ps:

另外,和submit属性,相类似的还有一个button属性

Button属性,

<p><input type="submit" value="登录"></p>-----一般提交数据到服务器使用
<p><input type="button" value="登录"></p>------一般结合js进行事件点击操作。比如点击登录会提示

 

那么这里有个问题,这个秘密是明文的呀,如何解决密文展示呢?

其实很简单,input标签里面的type属性,是有很多的不同类型的值可以使用的,

使用type="password"   就可以完美解决,让输入的值变成密文展示。

<p>密码:<input type="password"></p>

实际效果:

java form表单 html 标签丢失_单选框_06

================================================================

================================================================

那么说到底,基本操作如此,但是html如何才能和服务端交互呢。(毕竟输入框,提交都有了。)

如何和服务端交互?

解决方法:可以在<form>标签内进行添加要使用的url和请求方法(使用action="" method="")

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
        <title>Title</title>
</head>

<body>
    <form action="url具体内容" method="get/post请求方法">    //这就是解决方法
        <p>账号:<input type="text"></p>
        <p>密码:<input type="password"></p>
        <p><input type="submit" value="登录"></p>
    </form>
</body>
</html>

重要:!!!

但是这里会存在一个问题,如果提交时,这个数据服务端是获取到的什么呢?服务端怎么知道我提交的数据谁是谁呢?

其实这里就要说一个问题了:就是一定要指明input里面的id、name……或其他属性,否则html里面只有一个<input type="text"> ,

这样在传输数据到服务端后,服务端无法识别到具体是哪里操作来的,一个html页面可能涉及几十个,如何区分如何识别?

//方法:比如给input标签指明了 比如name属性:
<p>账号:<input type="text" name="username"></p>
<p>密码:<input type="password" name="password"></p>
//在提交数据后,会以键值对的形式,发送给服务端。服务端就会来识别到name这个属性和对应的值。
//----------------这是服务端对html传输来的数据识别的方式。键值对形式!!!
//即:输入的数据,会对应name属性的值,然后组成键值对,发送给服务端,这样就清晰明了了!
Checkbox和radio属性
(复选框和单选框)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
        <title>Title</title>
</head>

<body>
    <form action="url具体内容" method="get/post请求方法">
        <p>账号:<input type="text" name="username"></p>
        <p>密码:<input type="password" name="password"></p>
        <p><input type="submit" value="登录"></p>
        <!--<p><input type="button" value="登录"></p>-->
        <p>复选框1:<input type="checkbox" ></p>
        <p>复选框2:<input type="checkbox" ></p>
        <p>单选框1:<input type="radio" ></p>
        <p>单选框2:<input type="radio" ></p>
    </form>
</body>
</html>

实际效果:

java form表单 html 标签丢失_服务端_07

注意了:一般界面上的复选框和单选框就是这样实现的;

但是,这里也会存在一个问题:单选框为什么可以多选了?如何解决?

解决方法:

给单选框,加上一个name属性,并给name指定相同的值,

那么在选择的时候就不会存在都选择了。因为type=”radio”单选框这种情况下,name相同,那么最后就只允许取一个

<p>单选框1:<input type="radio" name="a"></p>
<p>单选框2:<input type="radio" name="a"></p>

 

最后!最重要的一点:

上面已经说明,HTML客户端在和服务端交互的时候,数据以键值对的形式传输,

那么这个单选框\复选框如何和服务端交互并且如何让服务端准确的识别到HTML页面上操作选择的谁是谁呢?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
        <title>Title</title>
</head>

<body>
    <form action="url具体内容" method="get/post请求方法">
        <p>账号:<input type="text" name="username"></p>
        <p>密码:<input type="password" name="password"></p>
        <p><input type="submit" value="登录"></p>
        <!--<p><input type="button" value="登录"></p>-->
        <p>爱好:</p>
        <p>篮球<input type="checkbox" name="hobby" value="0"></p>
        <p>足球<input type="checkbox" name="hobby" value="1"></p>
        <p>婚否:</p>
        <p>已婚<input type="radio" name="marry" value="10"></p>
        <p>未婚<input type="radio" name="marry" value="11"></p>
    </form>
</body>
</html>

实际效果:

java form表单 html 标签丢失_html_08

由此可见:

解决方法:

给复选框、单选框,都分别加上name属性和value属性。这就相当于指明自己的身份和密匙一样;

因为指明了name和value,那么在和服务端交互传输数据时,服务端能够更清晰识别到html页面的操作选择了哪些东西。

 

如:选择了单选框“已婚”,html就会把name="marry" value="10"转为键值对的形式进行识别!

 

  然后服务端看到name=”marry”就知道这是“婚否“这个单选框,value=”10”指明了“已婚”这个单选项)。

 

----------->>>说白了id,name这些属性,……和它对应的value值,都是为了给服务端看的,让服务端能够更清晰识别到html页面的操作选择了哪些东西。

(否则一个页面上百个输入框,选择项,随便选择一个后,传输数据到服务端后,该如何识别呢?那么将其id、name、value这些都指明后,以键值对的形式传入数据到服务端后,直接就识别到了)

 

 

 

上传\选择文件标签

<p><input type="file"></p>

重置页面数据标签

<p><input type="reset"></p>---->>也可以加上name属性,name=”清空页面数据”

==========================================================================

=========================================================================

以上均是常用的<form>表单里面的input标签可以使用的常用的属性

当然还有其他的很多,暂不过多说明……

 

 

最后,总结一下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
        <title>Title</title>
</head>

<body>
    <form action="url具体内容" method="get/post请求方法">            //指定url、method,利于和服务端进行交互
        <p>账号:<input type="text" name="username"></p>       //type="text"   普通的文本输入框
        <p>密码:<input type="password" name="password"></p>       //type="password"  密文显示的文本输入框
        <p><input type="submit" value="登录"></p>           //type="submit"    提交按钮                 
        <!--<p><input type="button" value="登录"></p>-->        //type="button"  常和js结合使用,点提交会触发js事件
        <p>爱好:</p>
        <p>篮球<input type="checkbox" name="hobby" value="0"></p>     //type="checkbox"   复选框
        <p>足球<input type="checkbox" name="hobby" value="1"></p>    
        <p>婚否:</p>
        <p>已婚<input type="radio" name="marry" value="10"></p>    //type="radio"   单选框
        <p>未婚<input type="radio" name="marry" value="11"></p>
        <p><input type="file"></p>                     //type="file"  文件上传按钮入口                             
        <p><input type="reset"></p>                    //type="reset"  清空重置按钮                              
    </form>
</body>
</html>

实际效果:

java form表单 html 标签丢失_html_09