`
vikki
  • 浏览: 115526 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HTML5 构建Web Form初试

阅读更多

本文是基于了网络上的一些技术帖子进行的整合。

首先参考的是 http://www.taskcity.com/forum/cn/thread-152-1-1.html  一篇关于html5的文章,全文如下:

 

 HTML5 是由 WHATWG (Web Hypertext Application Technology Working Group)发起的,最开始的名称叫做Web Application 1.0,而后这个标准吸纳了Web Forms2.0的标准,并一同被W3C组织所采用,合并成为下一代的HTML5标准。
前言HTML语言作为如今编程最为广泛的语言,具有易用、快捷、多浏览平台兼容等特点,但是随着时代的进步,HTML的标准却停滞不前,这一次还在不断开发中的HTML5标准的更新可以说给这门标记语言带来了新的生命力。本文将着重讨论HTML5中的Web Forms 2.0, 即表单的部分。
表单是网页中常见的控件(集)。小到网站注册登录,大到一个企业的数据管理系统,都基本上有表单的身影。表单之所以如此重要,主要是因为它担负大量的用户和网页后台数据更新交互的任务。Web开发人员,对于网页表单可以说又爱又恨,爱的是它方便的收集、组织数据的功能,恨的是它的功能很大程度上也就仅此而已。一些在最终网站用户看起来稀松平常的功能,比如说输入类型检查、表单校验、错误提示等等,开发人员无不需要花费大量精力利用JavaScript和DOM编程来满足这些天然所需的功能点,而随着Ajax的流行,出现的一些JavaScript的工具库,比如Dojo,YUI等都提供了方便的JavaScript Widget或者API来减轻开发人员的负担。
HTML5的表单新特性HTML5 Web Forms 2.0是对目前Web表单的全面提升,它在保持了简便易用的特性的同时,增加了许多内置的控件或者控件属性来满足用户的需求,并且同时减少了开发人员的编程。在我看来,HTML5 主要在以下几个方面对目前的Web表单做了改进:

  • 新的控件类型
    • 还在为类型检查犯愁吗,还在为那一长串看不太明白的检验输入的正则表达式而苦恼吗,HTML5提供的一系列新的控件将天然的具备类型检查的功能。比如说URL输入框,Email输入框等。
      <input type="url"></input>
      <input type="email"></input>
      
       
    • 当然还有非常重要的日期输入框,要知道使用JavaScript和CSS来“手工”制作一个日期输入框还是非常花功夫的,类似Dojo,YUI这样的类库也无不在这个widget上面大做文章。
         
      <input type="date"></input>
       
    • 作为我痛苦记忆的一部分,我经常记得我们开发人员要为一个select下拉别表动态的添加非常多的选项,这些选项大多数都是来自数据库,比如说国家、省市列表等等。这个事情非常繁琐。HTML5将支持data属性,为select控件外联数据源!
         
      <select data="http://domain/getmyoptions"></select>
       
       
  • 改进的文件上传控件,你可以使用一个控件上传多个文件,自行规定上传文件的类型(accept),你甚至可以设定每个文件最大的大小(maxlength)。你看出它和一般操作系统提供的文件上传控件的区别了吗,反正我觉得基本一致了。在HTML5应用中,文件上传控件将变得非常强大和易用。
  • 重复(repeat)的模型,HTML5提供一套重复机制来帮助我们构建一些重复输入列表,其中包括一些诸如add、remove、move-up,move-down的按钮类型,通过这一套重复的机制,开发人员可以非常方便的实现我们经常看到的编辑列表,这是一个很常见的模式,我们可以增加一个条目、删除某个条目、或者移动某个条目等等。
  • 内建的表单校验系统,HTML5为不同类型的输入控件各自提供了新的属性,来控制这些控件的输入行为,比如我们常见的必填项required属性,以及为数字类型控件提供的max、min等。而在你提交表单的时候,一旦校验错误,浏览器将不执行提交操作,而会显示相应的检验错误信息。 <input type="text" required></input>
    <input type="number" min=10  max=100></input>
  • XMLSubmission,我们一般常见的是form的编码格式是application/x-www-form-urlencoded。开发人员都很清楚这种格式,数据送到服务器端,可以方便的存取。HTML5将提供一种新的数据格式:XMLSubmission,即application/x-www-form+xml。简单的举例说,服务器端将直接接收到XML形式的表单数据。
       
    <submission>
        <field name="name" index="0">Peter</field>
        <field name="password" index="0">password</field>
    </submission>

实例分析我将利用HTML5新的表单系统, 做一个简单的用户注册的界面,包括用户名,密码,出生日期,保密问题等内容,代码如下:

<! doctype html>
<html>
    <head>
        <style>
            p label {
                width: 180px;
                float: left;
                text-align: right;
                padding-right: 10px
            }
            table {
                margin-left: 80px
            }
            table td {
                border-bottom: 1px solid #CCCCCC
            }
            input.submit {
                margin-left: 80px
            }
        </style>
    </head>
    <body>
        <form action='/register' enctype="application/x-www-form+xml" method="post">
            <p>
                <label for='name'>ID(请使用Email注册)</label>
                <input name='name' required type='email'></input>
            </p>
            <p>
                <label for='password'>密码</label>
                <input name='password' required type='password'></input>
            </p>
            <p>
                <label for='birthday'>出生日期</label>
                <input type='date' name='birthday' />
            </p>
            <p>
                <label for='gender'>国籍</label>
                <select name='country' data='countries.xml'></select>
            </p>
            <p>
                <label for='photo'>个性头像</label>
                <input type='file' name='photo' accept='image/*' />
            </p>
            <table>
                <thead>
                    <td><button type="add" template="questionId">+</button> 保密问题</td>
                    <td>答案</td>
                    <td></td>
                </thead>
                <tr id="questionId" repeat="template" repeat-start="1" repeat-min="1" repeat-max="3">
                    <td><input type="text" name="questions[questionId].q"></td>
<td><input type="text" name="questions[questionId].a"></td>
<td><button type="remove">删除</button></td>
                </tr>
            </table>
            <p>
                <input type='submit' value='send' class='submit' />
            </p>
        </form>
    </body>
</html>

 
由于目前HTML5标准仍然在开发中,不同的浏览器对HTML5特性的支持都相当有限。其中Opera在表单方面支持得比较好,本实例在Opera9上运行一切正常,效果图如下:

这个实例运用了一些HTML5的新的表单元素,比如email类型的输入框(ID),日期类型的输入框(出生日期)。并且使用了重复模型来引导用户填写保密问题,而在个性头像的上传中,通过限制文件类型,方便用户选择图片进行合乎规范的内容上传。而用户选择国籍的下拉选择输入框中,采用的是外联数据源的形式,外联数据源使用coutries.xml,内容如下:

<select xmlns="http://www.w3.org/1999/xhtml">
    <option>China</option>
    <option>Japan</option>
    <option>Korea</option>
</select>

 

并且form的enctype是application/x-www-form+xml,也就是HTML5的XML提交。所以一旦form校验通过,form的内容将会以XML的形式提交。你还会发现,在ID输入框如果没有值,或者输入了非email类型的字符串时,一旦试图提交表单,就会有提示错误的信息出现,而这都是浏览器内置的。
结语HTML5对表单控件的更新,无疑是很振奋人心的。本文描述了一部分表单的新特性,还有一部分新特性同样很令人期待。相信随着标准的深入开发以及浏览器对HTML5支持程度的进一步提升,设计一个简单易用的表单的工作,将变得非常轻松。

 

 

哪些浏览器支持html5

Safari

Safari 很重视标准,是所有浏览器中第一个通过 Acid2 和 Acid3 的浏览器。Safari 4 支持 HTML 5 音频和视频标签的浏览器。开发者可以将媒体文件直接整合到网页中,大大节约了开发时间,提高了响应速度。Safari 还支持 HTML 5 离线科技,基于网站的应用程序可以将信息存在本地硬盘中,无需网络连接也可随时使用。

IE

With full CSS 2.1, strong HTML 5 support , and interoperability fixes for the Document Object Model (DOM), Internet Explorer 8 has made deliberate investments in a new layout engine. 但有人说不支持 video 标签。

Firefox

Firefox 3.5 的亮点是在互联网技术的支持,比如 HTML 5……

Chrome

Chrome 2.0 还不支持,计划在今后的版本中支持本地存储、视频等 HTML 5 功能。

Opera

未找到相关报道,但从 2004 年开始,苹果、Mozilla、Opera 这三家参与了 HTML 5 的开发,相信 Opera 应该支持 HTML 5 吧。

总的来看,各浏览器都已经或即将支持 HTML 5,不过阻碍 HTML 5 发展的最大障碍应该是 IE 6、IE 7,现在这两个版本的 IE 浏览器市场占有率还非常高,所以有人说该对 IE6 说再见了

 

 

 

Taskcity - 中国领先的欧美项目外包交易管理平台

 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    PowerBuilder .NET Web Form

    ### PowerBuilder .NET Web Form:将传统应用转型至网络时代 #### 一、PowerBuilder .NET Web Forms:连接过去与未来的桥梁 PowerBuilder作为一种历史悠久且备受赞誉的应用开发工具,自诞生以来便以其强大的数据...

    将web Form 的数据转化成json字符串(带使用举例)

    * 将web Form 的数据转化成json字符串的函数 * howwa@sina.com 根据网上搜的资料修改而成 * 2011-5-14 * 将web Form 采集的数据转化成json字符串 * 传入web form对象 * 输出由form元素名称及其值组成的json字符串 *...

    工作流平台中Web Form 的自动生成技术研究

    【工作流平台中Web Form的自动生成技术研究】 工作流平台是现代企业信息化的重要组成部分,它主要用于自动化和管理业务流程。Web Form作为工作流平台的关键组件,承担着数据收集和交互的功能。本研究主要探讨了如何...

    【CoffeeCup Web Form Builder】网页表单制作软件

    【CoffeeCup Web Form Builder】网页表单制作软件【CoffeeCup Web Form Builder】网页表单制作软件【CoffeeCup Web Form Builder】网页表单制作软件【CoffeeCup Web Form Builder】网页表单制作软件【CoffeeCup Web ...

    Web Form 设计器

    【Web Form 设计器】是Web开发中的一个重要组成部分,它是一种可视化工具,允许开发者通过图形界面来构建和设计网页表单。在Web应用程序中,Web Form通常用于收集用户输入的数据,如登录信息、订单详情或者反馈表单...

    web-form-portlet.rar_portlet_web form

    综上所述,“web-form-portlet.rar_portlet_web form”主题涵盖了Portlet组件的开发,特别是如何在Portlet中构建和处理Web表单,以及可能涉及的插件开发技术。通过理解这些概念和实践,开发者可以构建出高效、可维护...

    一个基于C#实现的通用Win-Form/Web-Form 组件类库及程序例子代码

    5. **通用界面组件**:这些组件设计成跨平台兼容,无论是Win-Form还是Web-Form,都可以使用相同的控制器来呈现界面。这意味着开发者无需为每种平台单独编写界面代码,提高了开发效率和代码复用性。 6. **控件一致性...

    HTML5移动Web开发指南

    HTML5也引入了新的API,如Web Storage(localStorage和sessionStorage)用于数据持久化,Web Notifications(通知)用于向用户发送消息,以及WebRTC(Web Real-Time Communication)实现浏览器之间的音视频通信,...

    使用表单构建Web页面

    例如,要通过Web创建新文档,可以使用OpenFormURL命令,如`http://server/Jobs.nsf/Job+Application?OpenForm`,这会打开JobApplication表单并呈现为HTML形式。 Notes表单中的元素,如域、表格、复选框、单选按钮、...

    HTML5+CSS3 Web前端开发-唐四薪版-2018.5 源代码

    该书详细介绍了HTML5和CSS3这两个现代Web开发的重要技术,并且深入浅出地讲解了如何利用它们进行高效、美观的Web页面构建。书中涵盖了308页的内容,定价为39元,是初学者和进阶开发者学习Web前端技术的宝贵资源。 ...

    使用Domino表单构建Web页面

    【使用Domino表单构建Web页面】的知识点详解 1. **Domino表单与HTML页面的关系** - 表单是Notes应用的核心,它们定义了数据在输入和输出时的展示方式。同样,HTML页面通常用于在Web环境中提供数据展示和输入功能。...

    FarPoint web form 3 4 5 注册机

    FarPoint web form 3 4 5 注册机,包含 FarPoint web form 3 4 5 注册机

    ASP.NET Web form验证入门

    ASP.NET 中的一些安全基本概念 Web Form身份验证概述 Web Form验证配置

    网页表格设计生成工具Arclab.Web.Form.Builder.3.5

    网页表格设计生成工具Arclab.Web.Form.Builder.3.5是一款专为开发人员设计的高效解决方案,旨在简化网页中表单构建的过程。该工具以其强大的功能和用户友好的界面著称,通过可视化拖拽操作,使得创建复杂的网页表单...

    将web Form 的数据转化成json字符串(修正版)

    * 将web Form 的数据转化成json字符串的函数 * howwa@sina.com 根据网上搜的资料修改而成 * 将web Form 采集的数据转化成json字符串 * 传入web form对象 * 输出由form元素名称及其值组成的json字符串 * 元素的值...

Global site tag (gtag.js) - Google Analytics