神奇的表单

1.看一个算加减乘除的JavaScript小程序:

<html>
    <head>
        <title>计算矩形的面积(初识javascript)</title>
        <style type="text/css">
            .result{
                font-weight:bold;
            }
        </style>
        <script language="JavaScript">
        /*
        *这是个计算矩形面积和体积的JavaScript
        *定义了一个函数作为事件
        */
        function calculate(){
            /*获取用户输入的数据*/
            var length=document.loandata.length.value;
            var width=document.loandata.width.value;
            var height=document.loandata.height.value;
            /*获取span标签的对象*/
            var area=document.getElementById("area");
            /*输出计算的结果*/
            area.innerHTML = length*width;
            volume.innerHTML = length*width*height;
            }
        </script>
    </head>
    <body>
        <form name="loandata">
            <table>
                <tr><td><b>输入长宽高的数值:</b></td></tr>
                <tr>
                    <td>1)矩形的长度是:</td>
                    <td><input type="text" name="length"></td>
                </tr>
                <tr>
                    <td>2)矩形的宽度是:</td>
                    <td><input type="text" name="width"></td>
                </tr>
                <tr>
                    <td>3)矩形的高度是:</td>
                    <td><input type="text" name="height"></td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="button" value="运行" onclick="calculate();"></td>
                </tr>
                <tr><td><b>矩形的面积和体积分别是:</b></td></tr>
                <tr>
                    <td>矩形的面积:</td>
                    <td><span class="result" id="area"></span></td>
                </tr>
                <tr>
                    <td>矩形的体积:</td>
                    <td><span class="result" id="volume"></span></td>
                </tr>
            </table>
        </form>
    </body>
</html>

这里是一个JavaScript的小程序,其作用是计算一个矩形的面积和体积。那么如何才能使用这个计算矩形的小程序呢?这里就要通过表单将小程序出发,并且通过表单使这个程序可以和用户交互。
其中让用户输入数据的功能便是通过表单来实现的。页面中的小程序只是负责算出矩形的面积和体积。

2.表单的工作原理:
表单最重要的作用就是在客户端接收用户消息,然后将数据提交给后台的程序来控制这些数据。
从技术的概念上,表单用于操作form对象。对象是一种基本的数据类型。

<script>标签:JavaScript程序的调用类似于css样式表,可以像嵌入式样式表一样放入<head>标签中。也可以像外联样式表一样通过链接来引用。 当放入<head>标签中使用时,需要通过<script>标签命令行 <script language="javaScript"> </script> 上面的代码是告诉浏览器,这是JavaScript脚本。
如果是通过引用外部JavaScript程序,就像链接外连样式表一样
<script type="text/css" src="some.js">

</script>

3.创建表单:
创建表单的方式就像创造一个表格,使用<form>标签来创建。其中放置表单的对象,有表单域,按钮和其他元素,就像创建一个表格,用<table>标签来创建,其中个放置表格的单元格,行,列。
<form>标签中可扩展几个属性,分别是action,method,enctype和target属性

action属性:
通过<form>标签定义的表单,里面必须有action属性才能将表单中的数据提交出去,如下面的代码显示:
<form action="some.php">…….</form>
其作用是用来提交some.php这个页面中的数据。

method属性:
这个属性的作用是告诉浏览器,数据是以何种方式提交出去的。Method属性可以有两个选择:post和get
默认情况下,数据被提交的方式是get,表单域中输入的内容会添加在action指定的URL中。当表单被提交后,用户便获得一个明确URL。由于这种方式下的数据会添加到URL中,所以这样做的好处是可以保存在收藏夹中和他人分享。
而采用post方式,数据将以HTTP头的形式发送,表单数据不再是URL中的一部分。
(两种方法的区别是get在安全性上比较差,所有的表单域的值直接呈现。而post除了只有可见的处理脚本程序以外,别的信息都可以隐藏。所以在实际的运用中通常都选择post这种处理方式)

name属性:
添加name属性是为了令递交出去的表单数据能够被处理这些数据的程序所识别。在大部分页面中,很可能放入的表单不止一个,那么就要给不同的表单起不同的名字。
如例子中的<form name="loandata">就是吧表单命名为loandata。
var length=document.loandata.length.value; 表示通过表单loandata中获取输入的length项数值。

enctype属性:
enctype代表HTML表单数据的编码方式,分别有application/x-www-form-urlencoded、multiparty/form-data和text/plain三种方式。
application/x-www-form-urlencoded是标准的编码方式,提交的数据被编码为名称/值对。 multiparty/form-data属性表示数据编码为一条信息,为表单定义了MIME编码方式,创建了一个与传统不同的POST缓冲区,页面上的每个控件都对应消息中的一个部分。(在使用 multiparty/form-data方式上传文件时,不能使用post属性)
text/plain表示数据以纯文本的形式进行编码,这样在信息中,将不包含空间或者格式字符。

target属性:
目标显示方式,target属性表示在何处打开目标URL,可以设置四种方式,
_blank表示在新的页面中打开链接
_parent表示在父级窗口中打开页面
_top表示将页面载入到包含该链接的窗口,取代任何当前在窗口中的页面。
所以一个完整的<form>标签看起来是这样的
<form action="mailto:[email protected]" method="post" name="some" enctype="text/plain" target="_blank">
..

</form>
这段代码表明这个表单的动作是发送到邮箱[email protected],使用post的传输方式,使用text/plain的编码方式的some表单,使之在新页面打开。

4.表单域:
表单域就是用户输入数据的地方,就相当于用户给程序下命令。当然这种下命令的方式有许多,如最常见的文本域,下拉列表等。
表单域可以分为是那个对象:input,textarea和select。其中大部分类型的表单形式都是通过input属性来实现,textarea和select创建一种控制类型。

时间: 2024-10-31 02:40:56

神奇的表单的相关文章

AngularJS 神奇的表单

Angular 可使用指令无缝地增强标准表单元素的功能,我们将讨论它的优点,包括 数据绑定.建立模型属性.验证表单.验证表单后反馈信息.表单指令属性 下面我们通过案例验证他们的用法: 一.双向数据绑定(ng-model)和建立模型属性 <!DOCTYPE> <!-- use module --> <html ng-app="exampleApp"> <head> <title>Angular Directive</tit

Oracle EBS-SQL (SYS-7):表单个性化查询.sql

animation-timing-function animation-timing-function 规定动画的速度曲线.速度曲线定义动画从一套 CSS 样式变为另一套所用的时间.在平常的取值中,主要有以下几个: 值 描述 linear 动画从头到尾的速度是相同的. ease 默认.动画以低速开始,然后加快,在结束前变慢. ease-in 动画以低速开始. ease-out 动画以低速结束. ease-in-out 动画以低速开始和结束. cubic-bezier(n,n,n,n) 在 cub

读书笔记:《HTML5开发手册》Web表单

这是补充HTML5基础知识的第五篇内容,其他为: 一.HTML5-- 新的结构元素 二.HTML5-- figure.time.details.mark 三.HTML5-- details活学活用 四.HTML5-- 现存元素的变化 在之前的笔记中记录了HTML5标签元素的语义以及新定义,本周开始进入Web表单部分的学习,该章节已经读过一遍,很多表单验证的工作都可以通过HTML5完成!现在整理笔记,再次进入Web表单的神奇地域. 因该书出版较早,很多东西已经更改,我会在文中进行更正. 一.表单验

【原创】AJAX上传文件,formdata表单提交问题

今天遇到一个特别神奇的问题,AJAX上传文件,formdata表单提交问题,后台显示无法获取上传文件. 排查许久发现是formdata.append();时,要先添加file,而后添加其他参数.方可正常工作. 可是却不知到底是和原因.去了火狐开发者社区也未能找到答案. 还望知道的大神赐教一二.

Form 表单提交参数

今天因为要额外提交参数数组性的参数给form传到后台而苦恼了半天,结果发现,只需要在form表单对应的字段html空间中定义name = 后台参数名 的属性就ok了. 后台本来是只有模型参数的,但是后来增加了一个. 只要在前台定义 name="Users" 的select . 点击提交的时候,select 的多选值会自动传入后台参数Users[]中. 已经是第二次忘记这个神奇的作用,特此记下.

再说表单验证,在Web Api中使用ModelState进行接口参数验证

写在前面 上篇文章中说到了表单验证的问题,然后尝试了一下用扩展方法实现链式编程,评论区大家讨论的非常激烈也推荐了一些很强大的验证插件.其中一位园友提到了说可以使用MVC的ModelState,因为之前通常都在Web项目中用没在Api项目用过,想想Api方法接收的多参数都封装成了一个实体类,独立于数据Model层,这样其实很方便用ModelState做验证,于是尝试了一下. 认识ModelState 我们都知道在MVC中使用ModelState实现表单验证非常简单,借助jquery.validat

PHP入门-表单处理问题总结

这几天的学习下来.PHP和C/C++有太多的相似之处了.所以简单的入门现在看来已经没有问题了.但是因为选取的是一本快速入门的书籍,难免有些知识点比较粗糙.比如下面两个问题就让我吃了点亏. 1. 表单的文件标签无法获取到文件名. 在书籍里面了解到,表单<form>有三个属性,method, action,name .其中那么标记表单的名字,method表示使用哪种方式提交表达,可选get/post.action指定处理表单的动作.可以指定一个php页面或者干脆就在当前页面处理.这一点实在很神奇并

CSS之表单元素

表单就是收集用户信息的,就是让用户填写的.选择的. 1                <div> 2                         <h3>欢迎注册本网站</h3> 3                         <form> 4                                 所有的表单内容,都要写在form标签里面 5                         </form> 6          

MVC 表单提交【转】

在做Asp.Net MVC项目中,都知道View负责页面展示数据或者提供页面收集数据,而所展示的数据或者收集的数据都是从Controller的Action中获取或提交到Controller的Action. 这里的数据,可能是基础类型,或者是Model,或者是Model的部分内容,或者是集合比如List或Dictionary. 数据从View传递到Controller的Action时,有几种方式,RouteData(url中的路由数据),QueryString(http get的查询参数如?pag