先引入相关js文件

1

2

<script type="text/javascript" src="jquery-1.7.2.min.js"></script>

<script type="text/javascript" src="jquery.form.js"></script>

创建一个表单,表单放一个input[type=file]

1

2

3

<form method="post" enctype="multipart/form-data" name="chat_form" id="chat_form" style="display: none;">

<input name="impic_upload" type="file" id="impic_upload" />

</form>

注:有时候会出现表单嵌套,jquery.form在表单嵌套的时候会失败,所以要把以上表单拿到父表单外面,用js出发

以上注中:在父表单中定义节点#uploadimage,触发#impic_upload选择文件

1

2

3

4

$("#uploadimage").click(function(){

$("#impic_upload").click();

return false;

});

jquery.form代码操作

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

$("#impic_upload").change(function () {

$("#chat_form").ajaxSubmit({

type: 'post',  //请求类型

url: 'upload.php',  //该php中可接收$_FILES数组

beforeSubmit: function () {

//提交前的操作

},

success: function (data) {

//操作成功后

$("#image").val(data.imgsrc);

},

resetForm: true, //操作完成后是否重置表单

dataType:  'json' //返回数据格式

});

});

父表单中简易结构

1

2

3

4

5

6

7

<form name="form1" id="form1" action="" method="post">

姓名:<input class="text" id="uname" type="text" value="" />

图片:<input id="uploadimage" type="button" value="上传图片" />

  <input type="hidden" id="image" name="image" value="">

  //一个隐藏域来存放jquery.form返回的图片地址方便入库

<input type="submit" value="提交" />

</form>

jquery.form表单插件API提供的方法

ajaxForm()

增加所有需要的事件监听器,为AJAX提交表单做好准备。ajaxForm不能提交表单。在document的ready函数中,使用ajaxForm来为AJAX提交表单进行准备。ajaxForm接受0个或1个参数。这个单个的参数既可以是一个回调函数,也可以是一个Options对象。

可链接(Chainable):可以。

实例:

1

$('#myFormId').ajaxForm();

ajaxSubmit()

马上由AJAX来提交表单。大多数情况下,都是调用ajaxSubmit来对用户提交表单进行响应。ajaxSubmit接受0个或1个参数。这个单个的参数既可以是一个回调函数,也可以是一个Options对象。

可链接(Chainable):可以。

实例:

1

2

3

4

5

6

7

// 绑定表单提交事件处理器

$('#myFormId').submit(function() {

    // 提交表单

    $(this).ajaxSubmit();

    // 为了防止普通浏览器进行表单提交和产生页面导航(防止页面刷新?)返回false

    return false;

   });

formSerialize()

将表单串行化(或序列化)成一个查询字符串。这个方法将返回以下格式的字符串:name1=value1&name2=value2。

可链接(Chainable):不能, 这个方法返回一个字符串。

实例:

1

2

3

var queryString = $('#myFormId').formSerialize();

// 现在可以使用$.get、$.post、$.ajax等来提交数据

$.post('myscript.php', queryString);

fieldSerialize()

将表单的字段元素串行化(或序列化)成一个查询字符串。当只有部分表单字段需要进行串行化(或序列化)时,这个就方便了。这个方法将返回以下格式的字符串:name1=value1&name2=value2。

可链接(Chainable):不能,这个方法返回一个字符串。

实例:

1

var queryString = $('#myFormId .specialFields').fieldSerialize();

fieldValue()

返回匹配插入数组中的表单元素值。从0.91版起,该方法将总是以数组的形式返回数据。如果元素值被判定可能无效,则数组为空,否则它将包含一个或多于一个的元素值。

可链接(Chainable):不能,该方法返回数组。

实例:

1

2

3

// 取得密码输入值

var value = $('#myFormId :password').fieldValue(); 

alert('The password is: ' + value[0]);

resetForm()

通过调用表单元素原有的DOM方法,将表单恢复到初始状态。

可链接(Chainable):可以。

实例:

1

$('#myFormId').resetForm();

clearForm()

清除表单元素。该方法将所有的文本(text)输入字段、密码(password)输入字段和文本区域(textarea)字段置空,清除任何select元素中的选定,以及将所有的单选(radio)按钮和多选(checkbox)按钮重置为非选定状态。

可链接(Chainable):可以。

1

$('#myFormId').clearForm();

clearFields()

清除字段元素。只有部分表单元素需要清除时才方便使用。

可链接(Chainable):可以。

1

$('#myFormId .specialFields').clearFields();

jquery.form表单插件API的参数

ajaxForm和ajaxSubmit都支持众多的选项参数,这些选项参数可以使用一个Options对象来提供。Options只是一个JavaScript对象,它包含了如下一些属性与值的集合:

target

1

2

指明页面中由服务器响应进行更新的元素。元素的值可能被指定为一个jQuery选择器字符串,一个jQuery对象,或者一个DOM元素。

默认值:null。

url

1

2

指定提交表单数据的URL。

默认值:表单的action属性值

type

1

2

指定提交表单数据的方法(method):“GET”或“POST”。

默认值:表单的method属性值(如果没有找到默认为“GET”)。

beforeSubmit

1

2

3

表单提交前被调用的回调函数。“beforeSubmit”回调函数作为一个钩子(hook),被提供来运行预提交逻辑或者校验表单数据。如果“beforeSubmit”回调函数返回false,那么表单将不被提交。“beforeSubmit”回调函数带三个调用参数:数组形式的表单数据,jQuery表单对象,以及传入ajaxForm/ajaxSubmit中的Options对象。表单数组接受以下方式的数据:

[ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]

默认值:null

success

1

2

表单成功提交后调用的回调函数。如果提供“success”回调函数,当从服务器返回响应后它被调用。然后由dataType选项值决定传回responseText还是responseXML的值。

默认值:null

dataType

1

2

3

4

5

期望返回的数据类型。null、“xml”、“script”或者“json”其中之一。dataType提供一种方法,它规定了怎样处理服务器的响应。这个被直接地反映到jQuery.httpData方法中去。下面的值被支持:

'xml':如果dataType == 'xml',将把服务器响应作为XML来对待。同时,如果“success”回调方法被指定, 将传回responseXML值。

'json':如果dataType == 'json', 服务器响应将被求值,并传递到“success”回调方法,如果它被指定的话。

'script':如果dataType == 'script', 服务器响应将求值成纯文本。

默认值:null(服务器返回responseText值)

semantic

1

2

3

Boolean flag indicating whether data must be submitted in strict semantic order (slower). Note that the normal form serialization is done in semantic order with the exception of input elements of type="image". You should only set the semantic option to true if your server has strict semantic requirements and your form contains an input element of type="image".

布尔标志,表示数据是否必须严格按照语义顺序(slower?)来进行提交。注意:一般来说,表单已经按照语义顺序来进行了串行化(或序列化),除了type="image"的input元素。如果你的服务器有严格的语义要求,以及表单中包含有一个type="image"的input元素,就应该将semantic设置为true。(译注:这一段由于无法理解,翻译出来可能语不达意,但请达人指正。)

默认值:false

resetForm

1

2

布尔标志,表示如果表单提交成功是否进行重置。

Default value: null

clearForm

1

2

3

4

5

6

7

8

9

10

11

12

布尔标志,表示如果表单提交成功是否清除表单数据。

默认值:null

实例:

// 准备好Options对象

var options = {

    target:     '#divToUpdate',

    url:        'comment.php',

    success: function() {

      alert('Thanks for your comment!');

    } };

   // 将options传给ajaxForm

$('#myForm').ajaxForm(options);

注意:Options对象还可以用来将值传递给jQuery的$.ajax方法。如果你熟悉$.ajax所支持的options,你可以利用它们来将Options对象传递给ajaxForm和ajaxSubmit。

ajaxForm()适用于以表单提交方式处理ajax技术(需要提供表单的action、id、method,最好在表单中提供submit按钮)它大大简化了使用ajax技术提交表单时的数据传递问题,使用ajaxForm()你不需要逐个的以JavaScript的方式获取每个表单属性的值,并且也不需要在请求路径后面通过url重写的方式传递数据。ajaxForm()会自动收集当前表单中每个属性的值,然后将其以表单提交的方式提交到目标url。这种方式提交数据较安全,并且使用起来更简单,不必写过多冗余的JavaScript代码

1

2

3

4

5

6

7

$(document).ready(function(){

         registerForm'表单id

data回调数据

        $('#registerForm').ajaxForm(function(data){

            alert(data);//弹出ajax请求后的回调结果

        });

});

ajaxSubmit()适用于以事件的机制以ajax提交form表单(超链接、图片的click事件),该方法作用与ajaxForm()类似,但它更为灵活,因为他依赖于事件机制,只要有事件存在就能使用该方法。你只需指定该form的action属性即可,不需要提供submit按钮。

1

2

3

4

5

6

7

8

$(document).ready(function(){

    $('#btn').click(function(){

            $('#registerForm').ajaxSubmit(function(data){

                alert(data);

            });

            return false;

    });

    });

该段代码作用是在表单中id为btn的按钮click事件触发时通过ajaxSubmit()方法以ajax技术提交表单到表单的action所指路径

formSerialize()是将一个form中所有的表单元素以name作为key,value作为值进行序列化操作,这就需要你必须为每一个表单元素设置表单元素name属性及填充表单元素value的值,最好也设置id方便jquery定位表单元素。若要使用此方法你必须设置表单元素name属性及填充表单元素value的值,我在初次使用时就忘了设置name属性,最后在同事的帮助下找了好久才发现此错误。

1

2

3

4

5

var str=$('#registerForm').formSerialize(); // registerForm为form id

alert(str);

fieldSerialize()是将form中表单元素进行序列化以name作为key,value作为值进行序列化操作,这就需要你必须为每一个表单元素设置表单元素name属性及填充表单元素value的值。

var str=$('#username). fieldSerialize();

alert(str)

Jquery.form自动提交表单上传图片相关推荐

  1. 使用jquery.form.js提交表单并获取后台返回值

    使用jquery.form.js提交表单并获取后台返回值,会把所有有name属性的值提交到后台 1.前台js代码 //使用jquery.form.js提交表单并获取后台返回值,会把所有有name属性的 ...

  2. jquery form自动绑定表单内容

    $(#表单).serialize()自动绑定

  3. form表单下的button不设置type会自动提交表单

    有时html页面button点击会出现自动提交表单的情况. 后来查资料得知,form表单下的按钮在没有指定type类型的时候,button会有一个默认的type="submit" ...

  4. java jquery提交表单数据_[Java教程]jquery实现ajax提交表单信息

    [Java教程]jquery实现ajax提交表单信息 0 2016-08-23 15:00:08 最近在思考优化项目,想自己扩展一个jquery自动获取表单中的数据进行ajax提交.本人没有完整性学习 ...

  5. jQuery使用ajaxSubmit()提交表单示例(转)

    这篇文章主要介绍了jQuery使用ajaxSubmit()提交表单示例,使用延第三方插件jquery.form实现,需要的朋友可以参考下: 准备工作: ajaxSubmit(obj)方法是jQuery ...

  6. jQuery使用ajaxSubmit()提交表单示例

    jQuery使用ajaxSubmit()提交表单示例 2014-08-26 07:42 | 9975人阅读 | 来源 ajaxSubmit(obj)方法是jQuery的一个插件jquery.form. ...

  7. jQuery的ajax提交表单

    jQuery的ajax提交表单 1.表单 <form id="ff" method="post"><div class="input ...

  8. 点击button自动提交表单原因及解决方案

    在做登录的时候,需要ajax提交验证,但是发现点击button会自动submit表单,代码如下 <!DOCTYPE html> <html> <head> < ...

  9. Html:小技巧:自动提交表单的实现方法

    Html:小技巧:自动提交表单的实现方法 方法一: <html> <head> <title>Untitled Document</title> (1) ...

最新文章

  1. docker存储结构解析
  2. 如何通过网站SEO诊断来做竞争对手的分析?
  3. Linux下ssh登录速度慢的解决办法
  4. android udp和tcp区别,UDP模式与TCP模式的区别
  5. python和excel的结合新软件_Python处理Excel模块的对比分析!
  6. Linux 基础学习大考核
  7. 2019/4/17 Linux学习
  8. 关于opencv读取摄像头的未解之谜
  9. 【VMCloud云平台】SCCM(八) OSD(一)- 部署准备
  10. 一开电脑都是广告,请问怎么永久关闭?
  11. 端口状态 LISTENING、ESTABLISHED、TIME_WAIT、FIN_WAIT_2、CLOSE_WAIT、CLOSE_WAIT
  12. python 知乎 合并 pdf_32.使用selenium爬取知乎,并实现多页保存为一个PDF文件
  13. 狂神说Linux学习笔记
  14. 使用命令启动IOS模拟器
  15. 超级计算机通信工程研发相关高校,美国签证技巧
  16. Brief Summary of Bokeh Effect Rendering
  17. gz rar zip 7z bz2 tgz压缩率比较,以及做一些简单的关于压缩包介绍
  18. excel打开2个独立窗口_66㎡ 的公寓,竟能安排下 2个卧室和独立马桶间?
  19. Arduino 使用 旋转编码器
  20. 告别学习,步入社会【学习网络推广,emmm】

热门文章

  1. Java轻松解决百度文库复制、下载!程序员你能不掌握???
  2. 用Java写了一个类QQ界面聊天小项目,可在线聊天(附源码)
  3. B站视频下载软件分享
  4. 创业必须知道的----注册公司的流程和所需材料
  5. LIBXML2 2.9.11 build for Android
  6. worksheets 和 sheets 的不同
  7. es中对score 的过滤 min_score
  8. super-tinypng压缩图片
  9. Mac下编程相关软件安装
  10. Stata报错:command spatwmat is unrecognized