使用jQuery实现表单ajax提交

使用jQuery实现表单ajax提交
使用jQuery实现表单ajax提交

使用jQuery实现表单ajax提交(不支持文件上传)

有的童鞋可能会说了,不就是jQuery.post($(‘form’).attr(‘action’), $(‘form’).serialize(), function(response){})吗,谁不知道啊。呵呵,您了说的还真没错,核心确实是这个。但在真实项目中,这是远远不够的。

在实际的开发中,ajax提交表单必须给当前访问者明确的指示,让访问者知道目前数据正在提交中,这是很基本的原则。其次,ajax提交表单应该能够对错误信息进行有效的反馈,不但利于调试,而且当意外发生时应该让访问者可以知道具体发生了什么。最后,就是应该具有一定的通用性和可扩展性。

下面就介绍一下我编写的表单提交功能的jQuery代码。

功能介绍

我编写的这个表单提交代码包括以下功能:

1.修改jQuery.ajax组件的全局配置,以便更好的进行错误处理;

2.Ajax提交时显示表示“运行中”的图片,完成后自动隐藏;

3.集成提示信息显示功能;

4.表单提交,可以使用或不使用ajax提交表单,支持前置函数与回调函数,这样您可

以在提交时附加额外的校验,提交后触发其他的处理。

各部分的源码及介绍如下。

jQuery.ajax的全局配置

jQuery提供ajaxSetup方法来控制ajax对象的默认运行方式,我用它进行了如下配置:

1.jQuery.ajaxSetup({

2.type: "GET", //默认提交方式

https://www.360docs.net/doc/e013828477.html,plete: function(ajax) {

4.//ajax提交完成时触发的事件,如果ajax对象具有fromTarget属性,那么

使用自定义方法pBase.hideAjaxLoader隐藏它

5.if (ajax.fromTarget) {

6.pBase.hideAjaxLoader(ajax.fromTarget);

7.}

8.},

9.error: function(ajax, error, errorMessage) {

10.//错误处理,当错误产生时被触发

11.if (error == 'abort') {//错误类型为abort,即放弃本次操作,不做处理

12.return ajax;

13.}

14.if (error == 'error'&& ! ajax.responseText) {//如果错误类型为error并且没有

得到任何来自服务器的信息,那么不做处理

15.return ajax;

16.}

17.var content = '';

18.if (ajax.responseText) {

19.try {

20.//用来处理json格式的服务器端信息

21.eval('content = ' + ajax.responseText);

22.if (content.message) {

23.if (content.errorMessage) {

24.content = content.errorMessage;

25.} else {

26.content = content.message;

27.}

28.} else {

29.content = ajax.responseText;

30.}

31.} catch (e) {

32.if (errorMessage) {

33.//errorMessage一般是由web服务器返回的异常信息,而不

是服务器端脚本返回的异常

34.content = errorMessage;

35.} else {

36.content = ajax.responseText;

37.}

38.}

39.}

40.//调用自定义函数pBase.showAjaxMessage()来显示异常信息

41.pBase.showAjaxMessageBox(content, error);

42.}

43.});

获取基本访问路径信息

使用基本访问路径可以简化页面中的链接地址。代码如下。

1.pBase.getBaseUrl = function() {

2.if (!pBase._baseUrl) {

3.pBase._baseUrl = $('base').attr('href');

4.}

5.return pBase._baseUrl;

6.};

自定义的ajax方法

这里使用了特定格式的html,用来更美观的显示ajax运行标记。Js代码如下。

1.pBase.ajax =function(options, obj) {

2.var ajax = $.ajax(options);

3.if (obj) {

4.pBase.showAjaxLoader(obj);

5.ajax.fromTarget = obj;

6.}

7.return ajax;

8.};

Html代码示例如下。当ajax显示时,div.ajaxBox中的div.ajaxLoader16显示,其他隐藏,结束时执行相反的操作。如果您希望使用其他的方式,只要同时修改下节中说明的方法即可。

1.

2.

3.

4.

5.

6.

7.

显示/隐藏ajax运行标记

Js代码如下。您可以自行修改它们使其匹配您的页面元素。很简单的代码,不用多说,不是吗。

1.pBase.showAjaxLoader =function(obj) {

2.obj = $(obj);

3.obj.each(function() {

4.var item = $(this).parents('.ajaxBox:first');

5.item.children('*').hide();

6.item.children('.ajaxLoader16, .ajaxLoader32, .ajaxLoader64').show();

7.});

8.};

9.pBase.hideAjaxLoader =function(obj) {

10.obj = $(obj);

11.obj.each(function() {

12.var item = $(this).parents('.ajaxBox:first');

13.item.children('*').show();

14.item.children('.ajaxLoader16, .ajaxLoader32, .ajaxLoader64').hide();

15.});

16.};

显示提示信息

下面是源码,不多说了,其实就是很简单的使用js动态创建html元素而已。哦,说一句吧,如果显示的是错误信息需要用户手动关闭这个提示信息,否则5秒后自动消失。

1.pBase.showAjaxMessageBox = function(html, error) {

2.var box = $('

');

3.var contentBox = $('

');

4.var closeButton = $('

');

5.closeButton.click(function() {

6.$(this).parents('div.ajaxMessageBox:first').remove();

7.});

8.var id = 'ajax_' + (new Date()).getTime().toString();

9.box.attr('id', id);

10.contentBox.html(html);

11.if (error) {

12.box.addClass('error');

13.} else {

14.setTimeout('$("#' + id + '").remove()', 5000);

15.}

16.box.append(contentBox);

17.box.append(closeButton);

18.if ($('#ajaxMessagesBox').length < 1) {

19.$('body').prepend('

');

20.}

21.$('#ajaxMessagesBox').append(box);

22.};

Ajax提交表单

一大堆铺垫之后正菜来了。pBase.submitForm方法允许提供4个参数:

1.form: 要提交的表单;

2.useajax: 是否使用ajax提交;

3.validatorFn: 额外的校验函数,我们为其提供参数form,并要求其返回值为true或false;

4.callbackFn: 回调函数,我们为其提供的参数与jQuery.ajax中success事件得到的参数一致。

源码如下。

1.pBase.submitForm =function(form, useajax, validatorFn, callbackFn) {

2.form = $(form);

3.var elementClass = 'formElement';//我的特定表单格式

4.var errorClass = 'error'; //我的特定表单格式

5.var isValid = true;//数据有效性

6.var objs = form.find('input[required=1], textarea[required=1]');//必填项

7.var button = form.find('button[type=submit]'); //提交按钮

8.if (!useajax) {

https://www.360docs.net/doc/e013828477.html,eajax = false;

10.}

11.//对必填项进行校验,其实对于大部分浏览器来说这一步已经完全可以省略了

12.objs.each(function() {

13.var obj = $(this);

14.if (obj.val().length < 1) {

15.obj.parents('.' + elementClass + ':eq(0)').find('.' +

errorClass).html(pBase.translate('isEmpty'));

16.isValid = false;

17.}

18.});

19.var objs = form.find('input[sameas]');//我的特定格式,表示该元素的值应该与

sameas属性指定的目标一致,用于确认密码,确认邮箱等。

20.objs.each(function() {

21.var obj = $(this);

22.if (obj.val() != obj.parents('form:eq(0)').find('input[name=' + obj.attr('sameas')

+ ']').val()) {

23.obj.parents('.' + elementClass + ':eq(0)').find('.' +

errorClass).html(pBase.translate('Invalid Repeat'));//pBase.translate()用于翻译字符串,本文未列出该方法

24.isValid = false;

25.}

26.});

27.if (isValid&& $.isFunction(validatorFn)) {

28.isValid = validatorFn(form);//调用附加的校验函数对表单进行校验

29.}

30.if (!isValid) {

31.returnfalse; //校验失败,返回false

32.}

33.if (useajax) { //如果使用ajax提交的话那么这里开始进行提交了

34.if (!$.isFunction(callbackFn)) {

35.callbackFn = function(response) {};//如果没提供回调函数就声明一个

空函数

36.}

37.var actionUrl = form.attr('action');

38.if (actionUrl[0] != '/') {

39.actionUrl = pBase.getBaseUrl() + actionUrl;//如果目标地址不是绝对路

径那么自动补全它

40.}

41.pBase.ajax({

42.type: 'POST',

43.url: actionUrl,

44.type: form.attr('method').toUpperCase(),

45.data: form.serialize(),

46.success: function(response, textStatus, xmlHttpRequest) {

47.form.find('div.error').text('');

48.callbackFn(response, textStatus, xmlHttpRequest);

49.}

50.}, button);//将提交按钮传递过去,这样就能显示提交中咯

51.}

52.return !useajax;//如果是ajax提交返回false阻止表单自身的提交,否则返回

true

53.};

范例

以上代码可以配合如下的html代码使用。代码很乱哈,见谅,因为是php生成的,所以格式不会太好。

1.

2.

15.

16.

17.

18.用户昵称

19.昵称长度不少于4个字符(两个汉字)

20.

21.

22.

id="user-screen_name" value="Nick" helper="formText" required="1">

23.

24.

25.邮箱

26.您的邮箱地址,同时用于登录。

27.

28.

29.

id="user-email" value="interlover0@https://www.360docs.net/doc/e013828477.html," helper="formText" required="1">

30.

31.

32.手机

33.

34.

35.

36.

id="user-mobile" value="" helper="formT ext">

37.

38.

39.

40.提交

41.重置

42.

43.

44.

45.

更多

可用的范例请参考这里,查看完整的js文件点击这里。

该示例来自一个完整的Zend Framework演示项目,点击这里可以查看更多资料并下载相关源码。

有任何疑问您可以求助我的知道团队就是要一起二,或者在百度贴吧就是要一起二吧讨论。

表单_基础知识

表单 表单form是Internet和服务器之间进行信息交流的一种重要工具。包括按钮、文本框、单选按钮、复选按钮等,它们被称之为表单对象。表单的使用包括两部分:一是用户界面,提供用户输入数据的元件;另一部分是处理程序,可以是客户端程序而在浏览器执行,也可以是服务器程序,处理用户提交的数据,返回结果。 一.可插入的表单对象 Dreamweaver中,在“插入”面板中,有一个“表单”分类,选择该分类,可插入的表单对象快捷按钮就会出现。如下图: 可插入的对象,从左至右,包括: ?表单 ?文本字段 ?隐藏域 ?文本区域 ?复选框 ?单选按钮 ?单选按钮组 ?列表/菜单 ?跳转菜单 ?图像域 ?文件域 ?按钮 1.插入表单域 要在网页中插入表单对象,首先应该插入一个表单域,否则服务器将无法处理用户填写的信息。操作步骤如下: 步骤1:“插入”面板中,选择“表单”分类,单击左边第1个“表单”按钮,随即插入到网页中一个表单域,表单域在设计视图中显示为一个红色虚线框的范围。如图所示: 如果没有红色虚线框,执行菜单栏“查看/可视化助理/不可见元素”命令即可。 步骤2:设置表单域属性。使用鼠标单击虚线的边框,此时虚线框内出现黑色区域,表示该表单域被选中,属性面板如下: 表单域属性面板包括:

?表单名称:标识表单的唯一名称。 ?动作:指定处理该表单的动态页或脚本的路径。可以键入完整的路径,也可以单击“浏览文件”按钮指定到同一站点中包含该脚本或应用程序页的相应文件夹。如果没有相关程序支持的话,也可以使用E-mail的方式来传输表单信息,这种方式在动作文本框中键入:“mailto:电子邮件地址”。表示提交的信息将会发送到作者的邮箱中。比如 ?方法:用于选择表单数据传输到服务器的方法。可选择速度快但携带数据量小的GET方法,或者数据量大的POST方法。一般使用POST方法。 ?目标:指定打开窗口的方式。 ?MIME类型:指定对提交给服务器进行处理的数据使用MIME编码类型。 ?类:定义好的CSS样式。 2.插入文本域 当浏览者浏览网页需要输入文字资料时,像姓名、地址、E-mail或稍长一些的个人介绍等栏目,在制作时就可以使用文本域,它在浏览器中将显示为一个文本框。 具体操作如下: 步骤1:插入文本域前请确定首先插入了一个表单域,并且将光标放入表单域中。如果在表单域外插入文本域,Dreamweaver会弹出提示框,是否创建一个表单域。 步骤2:在“插入”面板中,选择“表单”分类,单击左边第2个“文本字段”按钮,随即插入到网页中一个文本域。可以在文本域前加入说明的文字,如“用户名”,告知浏览者需要填入的内容的类型。 步骤3:单击文本域,对文本域的属性面板进行设置: 文本域:输入文本字段的名称,该名称在该网页中是唯一的名称。名称不能包含空格或 特殊字符,可以使用字母数字字符和下划线的任意组合。 字符宽度:设置文本域中最多可显示的字符数。 最多字符数:设置单行文本域中所能输入的最多字符数。如果是空白,则可以输入任意 数量的文本。(最好对不同内容的文本域进行不同数量的限制,防止个别浏览者恶意输入大量数据,维护系统的稳定性。) 初始值:输入文本域中默认状态时显示的内容,当浏览者键入资料时初始文本被替代。 类型:显示了当前文本域的类型,包括“单行”、“多行”和“密码”。其中, ---单行是默认选项,只显示一行文本。 ---多行表示插入的文本可显示多行(如图)。

jquery mobile + html5 手机app表单跨域提交实例(手机app开发html5 juqery moblie phonegap系列一)

jquery mobile + html5 手机app表单跨域提交实例(手机app开发html5 juqery moblie phonegap系列一) 第一次写博文,把学习过程记录下来也留个底,免得以后不用都忘了。 确定用html5 +jquery moblie+ phonegap 框架作为app开发的主框架。一开始在网上找了很多资料,跟着学习了一下,然后下了很多代码, 结果发现一个很大的问题,网上的代码很多都tmd有bug,不知道是不是故意的还是怎么地,让我也走了很多弯路。不多废话开始实战。 1、开发工具的准备: 1.1 、jquery mobile :这个不用下载,直接在你的html文件中间加上以下代码就行了, 1.2 、html5 : 下载一个支持html5的浏览器就行了,支持的最好的是 Google Chrome ,这个还可以调试js,不错推荐。 1.3 、myEclipse 版本6.0以上就行,自带jdk 和tomcat ,这个写jsp当做服务器用。 1.4 、editplus 这个是文本编辑器,写html代码用的。 这一节的开发工具就准备这些,我们这节只在浏览器上面看效果,下节讲打包发布到安卓手机上面还需要一些东西。 2、开发流程: 2.1 制作提交用户名和密码的html5表单。 2.2 通过jsonp方式跨域提交到tomcat服务器上的jsp文件。 2.3 服务程序返回ok。 3、开发步骤: 3.1 html5文件,用editplus新建一个html文件,名字随便起。然后copy以下代码: Contact Example

web项目前端开发经验总结

web项目前端开发经验总结 最近这一个月完成了自己的第一个java web项目,是给某杂志社做的在线投稿系统,虽然进度很慢,但是中间确实学到了不少东西,深刻体会到了自己看几个月书都不如做一个项目来的实在。这个项目自己主要负责的是JSP页面、JS脚本、CSS样式表的编写,虽然主要做的是前端,但是在设计前端后台交互功能时,对MVC架构和数据库又多了一分了解,这一个月的时间,自己在技术上也确实成长了不少。 下面分成几块总结一下自己的这个项目中的心得吧: 1.项目开发流程:从确认需求开始,到原型设计,再到原型测试,这些都没什么说的了,主要是刚开始开发前端JSP页面时,自己走了很多弯路,想到有什么页面就写什么页面,GET和POST的路径也是随心所欲,想到什么名字就起什么名字,结果发现这样做严重影响了项目开发的进度,后来经过主管的提点后,我幡然醒悟,其实,面向对象的思想就贯穿在整个项目当中,在前面的原型设计的过程中,除了页面的设计还有数据库的设计,数据库的每个表就对应着Java中的每个实体类,这个类封装了数据库中的列作为属性,封装了数据库的增删改查作为方法,就拿这个投稿系统为例,实体主要有用户、稿件等等,实体间还有着一对一映射或者一对多映射等对应关系。其实,整个系统的开发就是围绕着这些个实体进行的,甚至于我们可以把实体名字做为二级目录,把实体的增删改查作为GET或POST 的路径,譬如account/add、paper/delete等等,有了这些路径,那么与之对应的GET和POST的Controller也就有了,接下来我们要做的就是,定义Controller中返回的视图,写完Controller后再把与实体相关的增删改查方法写到服务层中,再把项目的整个骨架搭起来,再去处理细节,很快的,这个项目就成型了。这里前端和后台的配合尤为重要,数据交互是整个系统的核心。 2.JSP页面设计:提到JSP页面,在这里我想说的一点是,其实JSP页面是在服务器生成的,那么传给JSP页面的变量、参数都会在服务器转化为它们具体的值,然后再传给客户端。JSP页面可以实现很多服务器端的功能,因为可以直接在页面嵌入JAVA代码,但是我们必须明确的一点是,JSP页面主要是用来呈现视图的,不要再其中套入大量的代码,要明确前端与后台的分工。 3.JSTL标签:JSTL标签就是JSP standard taglib,即JSP标准标签库,首先,EL表达式可以非常方便的取出Controller返回的View包含的Model,甚至都无需声明EL 表达式。其次,JSTL标签可以实现很多的逻辑控制功能,比如最基本的c:if判断、c:forEach 循环,甚至有更强大的c:choose,有了这些,我们可以大大简化代码量,JSP页面中用几十行java写的代码,有时用几句JSTL标签组合就实现了,此外,像fmt:parseDate和 fmt:formatDate也是很好用的标签,用于日期的解析和格式化,此外JSTL更有强大的函数标签库fn:,项目中我也只用到了fn:length取后台传的list的长度。要善用JSTL标签,但是又不要完全依赖于它,JSTL标签很方便、快捷,但是切记,JSTL功能有限,不要完全依赖于它。 4.shiro框架:shiro框架是apache的一款面向java web项目的权限控制框架,这个框架无论前端、后台都十分好用,在前端,我们可以使用shiro强大的标签库,通过用户角色赋予用户不同的访问权限。譬如,如果一个系统的用户有访客、用户、管理员三种角色,我们就可以通过shiro标签来控制游客不能访问哪些内容,页面向用户和管理员呈现的不同内容,这就是shiro标签的神奇之处。 5.sitemesh框架:这个主要是用来将所有页面套用固定格式,用以页面的复用,其实有些时候标签更为方便,而且sitemesh框架的内存开销是的二倍,还会导致拦截器出现一些莫名的bug,所以并不推荐使用。

PHP JQUERY AJAX 提交表单FORM详解

PHP jQuery Ajax Form表单提交实例解析,包括创建一个表单html页面、添加JQuery代码、jquery ajax表单提交、jquery ajax表单验证、反馈信息给用户,php ajax 表单验证,php ajax提交表单,php ajax form验证,php ajax提交form。 本实例用到JQuery类库本身的函数和功能,所有表单信息利用PHPMailer类库邮件的形式发送。 1、创建一个表单html页面 表单部分html代码 这里用一个id为contact_form来包含整个包含信息;这是有意义的,稍后在JavaScript与用户交互信息的时候会用到,这里form标签的属性里面既包含了method和action;这个意义其实不大,因为Javascript直接操作DOM,所以没有这两个属性也是可以的;务必要给用户输入的input标签加独立的id,这和第二点原理类似。否则,无法看到正常的效果。 2、添加JQuery代码 这里假设你已经从JQuery官方网站上下载了JQuery基库,然后上传到了你的WEB服务器,并添加到你要使用的网页中。

现在新建一个JS文件 第1行的function()函数与Jquery的document.ready函数用法和功能相同,都是在DOM准备完毕后自动触发。第2行里面是一个单击触发函数click(),需要注意的是,在HTML一页提交按钮上需要放置一个名为“button”的Class,以模拟实现submit 提交表单的功能,从第二点我们可以看出,JQuery可以很好的将结构和逻辑分离。 3、jquery ajax表单验证 在实际应用中,这一步是必不可少的。在用户漏填,错填某个项目时,及时提示。

Javaweb师创试题

JavaWeb试题 一.单项选择(共20题,每题2分) 1.HTML的全称是什么( A ) A.HyperText Markup Language B.HyperTest Market Language C.HighTest Markup Language D.HyperText Market Language 2.以下选项中属于行内标签的是(A ) A、 span B、 p C、div D、hr 3.以下说法正确的是( C) A、background-color:设置文字颜色 B、back-corlor设置背景色 C、 background-color:设置背景色 D、 color:设置背景色 4.下列哪一项是CSS 正确的语法(C ) A、 body: color=black B、 {body: color:black} C、 body{color:black} D、 {body:color=black} 5.Http协议的状态码(D)表示文件没有找到

A、200 B、400 C、 500 D、 404 6.Tomcat的端口号可以在(A )文件中修改 A. server.xml B. web.xml C. tomcat.xml D. 不能改 7.在一个表单里,想要用jquery找到指定元素的第一个元素用 ( )实现,第二个元素用( A)实现。 A、first,eq(1) B、first,equ(0) C、first,eq(0) D、fir,eq(1) 8.当一个Servlet首次被请求的时候,服务器首先会调用( D )方法 A、 doGet B、 doPost C、 doInit D、 init 9.在J2EE中,重定向到另一个页面,以下(C)语句是正确的 A、 request . sendRedirect(“http :// www . svse . com . cn”); B、 request . sendRedirect(); C、 response . sendRedirect(“http: // www . svse . com . cn”); D、 response .sendRedirect(); 10.在Servlet中,response.getWriter()返回的是( B ) A、 JspWriter对象 B、 PrintWriter对象 C、 Out对象 D、 ResponseWriter对象 11.Login.jsp为登录页面,表单代码如下:

JQuery提交表单 Form.js官方插件介绍

JQuery提交表单Form.js官方插件介绍 Form插件,支持Ajax,支持Ajax文件上传,功能强大,基本满足日常应用。 1、JQuery框架下载 https://www.360docs.net/doc/e013828477.html,/ 2、Form插件下载 https://www.360docs.net/doc/e013828477.html,/jquery/form/#download 3、Form插件的简单入门 第二步:jquery.js和form.js文件的包含

表单插件API提供了几个方法,让你轻松管理表单数据和进行表单提交。 ajaxForm 增加所有需要的事件监听器,为AJAX提交表单做好准备。ajaxForm不能提交表单。在document的ready函数中,使用ajaxForm来为AJAX提交表单进行准备。ajaxForm接受0个或1个参数。这个单个的参数既可以是一个回调函数,也可以是一个Options对象。 可链接(Chainable):可以。 实例: $('#myFormId').ajaxForm(); ajaxSubmit 马上由AJAX来提交表单。大多数情况下,都是调用ajaxSubmit来对用户提交表单进行响应。ajaxSubmit接受0个或1个参数。这个单个的参数既可以是一个回调函数,也可以是一个Options对象。 可链接(Chainable):可以。 实例: // 绑定表单提交事件处理器 $('#myFormId').submit(function() { // 提交表单 $(this).ajaxSubmit(); // 为了防止普通浏览器进行表单提交和产生页面导航(防止页面刷新?)返回false return false; }); formSerialize 将表单串行化(或序列化)成一个查询字符串。这个方法将返回以下格式的字符串:name1=value1&name2=value2。 可链接(Chainable):不能,这个方法返回一个字符串。 实例: var queryString = $('#myFormId').formSerialize(); // 现在可以使用$.get、$.post、$.ajax等来提交数据 $.post('myscript.php', queryString); fieldSerialize

Web前端开发简明教程(HTML+CSS+JavaScript+jQuery)教学大纲

高级网页设计与制作 Advanced Web Design and Implementation 一、课程编号: 二、课程类别: 三、课程性质:选修课 四、学时: 48(讲课学时:24 实验学时:上机学时:24 课外学时:) 五、学分: 3 六、先修课程要求:无 七、适用专业:计算机相关专业 八、适用年级、学期:二年级第1学期 九、课程目的及任务: 本课程是面向计算机相关专业学生开设的一门专业选修课程,培养学生WEB 开发中的前端界面设计能力,为后续课程的学习奠定基础。 本课程的主要任务是介绍利用Dreamweaver开发工具进行网页设计,包括如何在网页上显示文字、图片、表格、表单等;利用CSS技术对网页上内容进行排版,并设置相关格式;利用JavaScript技术对网页内容进行操作,实现一些动态效果。目的是通过本课程的学习,培养学生的实际动手能力和计算机的操作能力,能够运用所学的知识进行网页设计。 十、课程内容及基本要求(重点、难点、知识掌握程度及考核要求): 第1部分 HTML 第 1 章 HTML 概述 第 2 章 HTML 文本与图像 第 3 章 HTML 列表 第 4 章 HTML 表格 第 5 章 HTML 表单 第 6 章 HTML 5 要求:掌握HTML文档的结果,掌握标签、属性等的使用;掌握在页面上输出文字、段落,设置字体;掌握有序列表、无序列表的使用,能制作简单导航栏;掌握图片、背景与颜色的使用;掌握链接的使用,能使用超链接下载文件;掌握使用表格来表示数据和布局,用CSS对表格进行美化;掌握使用表单来与用户交互。第2部分 CSS语法基础 第 7 章 CSS 基础 第 8 章 CSS 盒子模型 第 9 章 CSS 字体与文本 第 10 章 CSS 列表与表格 第 11 章 CSS 定位 要求:掌握CSS的基本语法,掌握伪类与伪元素的使用;掌握CSS属性的使用,重点掌握定位、边距、填充属性。

表单提交中文乱码问题

jquery.form 提交中文时乱码(GBK 乱码)的解决方案 分类:jQuery2009-11-18 21:58 1758人阅读评论(0) 收藏举报 在使用jsp开始时,一不小心就会出现中文乱码的情况。通常可以使用如下方法解决: 第一种解决方法: 从jsp到servlet统一使用utf-8编码.全部使用utf-8编码能省去很多麻烦,但一点不足是utf-8编码对汉字是使用3-4个字节,会加大网络传输量。 第二种方法: 1.jsp页面使用GBK 2.使用servlet过滤器设置request.setCharacterEncoding("GBK");google一下就能找到很多怎么使用过滤器转换编码。 以上两种方法能解决大部分的乱码问题,特别是第一种方法,能解决使用ajax提交时的中文乱码问题。如果采用第二种方法,那么在使用ajax提交表单时仍然会有中文乱码。这是因为ajax方式提交时js使用的是utf-8的编码,过滤器使用gbk进行转码就不正确了,应该使用utf-8进行转码。要解决这个问题,网上也有很多个版本,其中一个是我曾经采用的在客户端使用encodeURI,然后再在服务器端进行URLDecoder.decode,这种方案在偶尔处理一下中文是可行的,但是如果页面有大量数据录入,那么这种方案是不可行的。有没有好的解决方法呢?在经过新一轮的google之后,还是找到了方法。参考 https://www.360docs.net/doc/e013828477.html, /topic/157698?page=1。原理就是根据httpheader中的内容来区分是ajax方式请求还是普通的请求。在jquery1.2.6中,ajaxSettings默认设置contentType 为"application/x-www-form -urlencoded",在ajax方法中设置 xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");,我们只要在servlet中根据这两个参数值来判断是不是通过xmlhttprequest发起的请求。这里值得一提的是jquery 在提交form 时对参数进行了encodeURIComponent调用,参见param方法 [javascript]view plainc opy 1.jQuery .each( a, function(){ 2. s.push( encodeURIComponent(this .name) + "=" + encodeURIComponent( thi s .value ) ); 3.});

jquery validate和validform验证插件的对比

此文在jquery的验证插件(下文以jquery代替)和validform验证插件之间作如下对比: 1、样式 2、普通验证: 3、自定义验证: 4、Ajax验证: 一、样式 1、Jquery(可自定义提示信息样式,下图摘自官方文档): 2、Validform(提供七种内置方案并支持自定义,以下为七种内置的较常用的三种):

二、普通验证 1、Jquery: Jquery支持两种方式验证:1、直接将规则绑定到元素上。2、将规则写在初始化js 中 1、直接将规则绑定到元素上。

验证一个完整的表单

2、将规则下载初始化js中 $().ready(function() { $("#signupForm").validate({ rules: { firstname: "required", email: { required: true, email: true }, password: { required: true, minlength: 5 }, confirm_password: { required: true, minlength: 5, equalTo: "#password" } }, messages: { firstname: "请输入姓名", email: {

jquery.form.js中文API

jquery.form.js中文API 关键字: jquery.form.js 英文原文:https://www.360docs.net/doc/e013828477.html,/jquery/form/#api 表单插件API提供了几个方法,让你轻松管理表单数据和进行表单提交。 ajaxForm 增加所有需要的事件监听器,为AJAX提交表单做好准备。ajaxForm不能提交表单。在document的ready函数中,使用ajaxForm来为AJAX提交表单进行准备。ajaxForm接受0个或1个参数。这个单个的参数既可以是一个回调函数,也可以是一个Options对象。 可链接(Chainable):可以。 实例: Java代码 1$('#myFormId').ajaxForm(); ajaxSubmit 马上由AJAX来提交表单。大多数情况下,都是调用ajaxSubmit来对用户提交表单进行响应。ajaxSubmit接受0个或1个参数。这个单个的参数既可以是一个回调函数,也可以是一个Options对象。 可链接(Chainable):可以。 实例: Java代码 2// 绑定表单提交事件处理器 3$('#myFormId').submit(function() { 4 // 提交表单 5 $(this).ajaxSubmit(); 6 // 为了防止普通浏览器进行表单提交和产生页面导航(防止页面刷新?)返回false 7return false; 8});

formSerialize 将表单串行化(或序列化)成一个查询字符串。这个方法将返回以下格式的字符串:name1=value1&name2=value2。 可链接(Chainable):不能,这个方法返回一个字符串。 实例: Java代码 9var queryString = $('#myFormId').formSerialize(); 10 11// 现在可以使用$.get、$.post、$.ajax等来提交数据 12$.post('myscript.php', queryString); fieldSerialize 将表单的字段元素串行化(或序列化)成一个查询字符串。当只有部分表单字段需要进行串行化(或序列化)时,这个就方便了。这个方法将返回以下格式的字符串:name1=value1&name2=value2。 可链接(Chainable):不能,这个方法返回一个字符串。 实例: Java代码 13var queryString = $('#myFormId .specialFields').fieldSerialize(); fieldV alue 返回匹配插入数组中的表单元素值。从0.91版起,该方法将总是以数组的形式返回数据。如果元素值被判定可能无效,则数组为空,否则它将包含一个或多于一个的元素值。 可链接(Chainable):不能,该方法返回数组。 实例: Java代码

jQuery formValidator使用说明

jQuery formValidator使用说明 说明:jQuery formValidator表单验证插件,它是基于jQuery类库,实现了js 脚本于页面的分离。对一个表单对象,你只需要写一行代码就可以轻松实现20种以上的脚本控制。现支持一个表单元素累加很多种校验方式,采用配置信息的思想,而不是把信息写在表单元素上,能比较完美的实现ajax请求。并结合jquery.boxy实现遮罩提示。 一、所需元素 jquery-1.3.2.js (需要jquery-1.3.2以上版本) formValidator.js (表单验证基础js) formValidatorRegex.js (表单验证所需正则js) jquery.boxy.js (遮罩提示js) validator.css (表单验证样式) boxy.css (遮罩提示样式) 二、使用说明 a)使用方法 i.加载所需js和css文件 ii.初始化验证控件 ($.formValidator.initConfig({formid:"form1",onerror:functi on(msg){Boxy.alert("

"+msg+"
",null,{title: "提示信息"});}});) iii.表单验证 ($("#nl").formValidator({onshow:"请输入的年龄(1-99岁之间)",onfocus:"只能输入1-99之间的数字哦",oncorrect:"恭喜你,你输对了 "}).inputValidator({min:1,max:99,type:"value",onerrormin:"你输入的值必须大于等于1",onerror:"年龄必须在1-99之间,请确认"}).defaultPassed(); });) b)参数说明: i.初始化验证控件:initConfig 1.Formid (form 表单 id) 2.Debug (是否使用debug模式,默认false) 3.Validatorgroup (验证表单分组) 4.Alertmsg (alert输出提示信息,默认false) 5.Boxyalertmsg (boxy.alert输出提示信息,默认false) 6.Validobjectids (多个表单id,用“,”分隔) 7.Onsuccess (成功时回调涵数) 8.Onerror (失败时回调涵数) 9.Submitonce (是否提交表单,默认false) 10.Autotip (是否使用自动验证提示,默认false) ii.表单验证 验证方式有如下几种 1.formValidator (基础验证) 初始参数: validatorgroup : "1",

第一节 HTML表单提交数据和JSP获得数据

第一节 HTML表单提交数据和JSP获得数据 为了学习掌握JSP动态网页的设计开发,我们先从大家比较熟悉的表单入手。以前在学习静态网页设计时,做好的表单无法提交数据,那是因为没有接收数据的程序。本节使用一组范例,由HTML的表单提交数据,并使用JSP动态网页获得数据,来说明他们之间的关系和工作原理。 一、范例的演示和代码清单 演示的前提: 1.配置好开发运行环境; 2.将随书光盘中的范例ch2,复制到resin2.1.6\doc文件夹内; 3.启动JSP引擎; 演示步骤: 1.启动IE,在地址栏键入http://127.0.0.1:8080/ch2/ch2-1.htm,如图2-1所示: 图2-1 2.在表单的姓名栏键入“张三”,年龄栏键入“21”,性别选择其中的一项,密码栏 键入“123”,然后点击“提交”按钮。屏幕出现2-2所示界面:

图2-2 注意:访问动态网页必须在启动JSP引擎后,在IE的地址栏键入IP地址和路径文件名,才能进行访问,不能使用直接双击打开的方式。 网页的页面上显示了所提交数据的全部内容。请注意,地址栏上的内容是:http://127.0.0.1:8080/ch2/ch2-1.jsp。这说明提交的数据已被ch2-1.jsp动态网页接收,并将其送到屏幕上进行显示。 当然,可以在表单中填写其他的内容,屏幕显示的内容会随之变化。但是如果在“年龄”项目中填写的不是数字,而是字母、汉字等不正确的内容,屏幕上也会将这些错误内容显示出来,甚至任何一项都不填写,直接点击“提交”按钮,动态网页仍能正常运行。这些问题,我们会在以后的章节中去一一解决。目前先要弄清HTML静态网页和JSP动态网页之间的关系。 两个网页的代码如下: 范例ch2-1.htm 1) 2) 3) 4)表单 5) 6) 7) 8)

使用表单提交数据

9)
10)  11)姓名: 12) 13)

jQuery formValidator表单验证插件

jQuery formValidator表单验证插件是什么? jQuery formValidator表单验证插件,它是基于jQuery类库,实现了js脚本于页面html代码的分离。你可以划分多个校验组,每个组的校验都是互不影响。对一个表单对象,你只需要写一行代码就可以轻松实现无数种(理论上)脚本控制。目前支持5种大的校验方式,分别是:inputValidator(针对input、textarea、select控件的字符长度、值范围、选择个数的控制)、compareValidator(提供2个对象的比较,目前可以比较字符串和数值型)、ajaxValidator(通过ajax到服务器上做数据校验)、regexValidator(提供可扩展的正则表达式库)、functionValidator (可使用外部函数来做校验) 本插件于其他校验控件最大的区别有3点: 1、校验功能可以扩展。 对中文、英文、数字、整数、实数、Email地址格式、基于HTTP协议的网址格式、电话号码格式、手机号码格式、货币格式、邮政编码、身份证号码、QQ号码、日期等等这些控制,别的表单校验控件是代码里写死的,而formValidator是通过外部js文件来扩展的,你可以通过写正则表达式和函数来无限的扩展这些功能。 2、实现了校验代码于html代码的完全分离。 你的所有信息都无需配置在校验表单元素上,你只要在js上配置你的信息。使美工(界面)和javascript工程师的工作不交织在一起 3、你只需写一行代码就能完成一个表单元素的所有校验。你只需要写一行代码就能完成一下所有的控制 ?支持所有类型客户端控件的校验 ?支持jQuery所有的选择器语法,只要控件有唯一ID和type属性 ?支持函数和正则表达式的扩展。提供扩展库formValidatorReg.js,你可以自由的添加、修改里面的内容。 ?支持2种校验模式。第一种:文字提示(showword模式);第二种:弹出窗口提示(showalert模式) ?支持多个校验组。如果一个页面有多个提交按钮,分别做不同得提交,提交前要做不同的校验,所以你得用到校验组的功能。 ?支持4种状态的信息提示功能,可以灵活的控制4种状态是否显示。第一种:刚打开网页的时候进行提示;第二种:获得焦点的时候进行提示;第三种:失去焦点时,校验成功时候的提示;第四种:失去焦点时,校验失败的错误提示。 ?支持自动构建提示层。可以进行精确的定位。 ?支持自定义错误提示信息。

HTML FORM表单,input标签的说明

HTML 表单(Form)是 HTML 的一个重要部分,主要用于采集和提交用户输入的信息。
一个简单的 HTML 表单,包含两个文本输入框和一个提交按钮:
First name: Last name:




HTML 表单(Form)常用控件(Controls)
HTML 表单(Form)常用控件有:
? ? ? ? ? ? ?
input type="text" 单行文本输入框 input type="submit" 将表单(Form)里的信息提交给表单里 action 所指向的文件 input type="checkbox" 复选框 input type="radio" 单选框 select 下拉框 textArea 多行文本输入框 input type="password" 密码输入框(输入的文字用*表示)
表单控件(Form Control):单行文本输入框(input type="text")
单行文本输入框允许用户输入一些简短的单行信息,比如用户姓名。例句如下:
表单控件(Form Control):复选框(input type="checkbox")
复选框允许用户在一组选项里,选择多个。示例代码: 苹果
桔子
芒果
用 checked 表示缺省已选的选项。 桔子

表单控件(Form Control):单选框(input type="radio")
使用单选框,让用户在一组选项里只能选择一个。示例代码: 苹果
桔子
芒果
用 checked 表示缺省已选的选项。

jquery如何进行表单验证样例

JQuery笔记-表单验证大全

jquery.validate.js 是 jquery 旗下的一个验证插件,借助 jquery 的优势,我们可以迅速验证一些常见的输入 , 并且可以自己扩充自己的验证方法。 举个例子,有这么一个表单: view plaincopy to clipboardprint?

Validating a complete form
Validating a complete form

表单multipart(form-data)

Java中,当表单含有文件上传时,提交数据的如何读取 当提交表单里包含文件上传的时候,即Form的enctype属性值为multipart/form-data时,后台是无法像普通表单那样通过request.getParameter来获取用户提交的数据的。(说实话,我经常因为忘记这个问题而浪费好多调查时间。) 1.// 判断enctype属性是否为multipart/form-data 2.boolean isMultipart = ServletFileUpload.isMultipartContent(request); 3. 4.// Create a factory for disk-based file items 5.DiskFileItemFactory factory = new DiskFileItemFactory();

7.// 当上传文件太大时,因为虚拟机能使用的内存是有限的,所以此时要通过临时文件来实现 上传文件的保存 8.// 此方法是设置是否使用临时文件的临界值(单位:字节) 9.factory.setSizeThreshold(yourMaxMemorySize); 10. 11.// 与上一个结合使用,设置临时文件的路径(绝对路径) 12.factory.setRepository(yourTempDirectory); 13. 14.// Create a new file upload handler 15.ServletFileUpload upload = new ServletFileUpload(factory); 16. 17.// 设置上传内容的大小限制(单位:字节) 18.upload.setSizeMax(yourMaxRequestSize); 19. 20.// Parse the request 21.List items = upload.parseRequest(request); 22. 23.Iterator iter = items.iterator(); 24.while (iter.hasNext()) { 25.FileItem item = (FileItem) iter.next(); 26. 27.if (item.isFormField()) { 28.//如果是普通表单字段 29.String name = item.getFieldName(); 30.String value = item.getString(); 31.... 32.} else { 33.//如果是文件字段 34.String fieldName = item.getFieldName(); 35.String fileName = item.getName(); 36.String contentType = item.getContentType(); 37.boolean isInMemory = item.isInMemory(); 38.long sizeInBytes = item.getSize(); 39....

相关文档
最新文档