Ajax表单提交

jQuery Form插件是一个优秀的Ajax表单插件,可以非常容易地、无侵入地升级HTML表单以支持Ajax。jQuery Form有两个核心方法 -- ajaxForm() 和 ajaxSubmit(), 它们集合了从控制表单元素到决定如何管理提交进程的功能。另外,插件还包括其他的一些方法: formToArray()、formSerialize()、fieldSerialize()、fieldValue()、clearForm()、clearFields() 和 resetForm()等。

核心方法 -- ajaxForm() 和 ajaxSubmit()

[javascript] view plain copy

  1. $(‘#myForm‘).ajaxForm(function() {
  2. $(‘#output1‘).html("提交成功!欢迎下次再来!").show();
  3. });
  4. $(‘#myForm2‘).submit(function() {
  5. $(this).ajaxSubmit(function() {
  6. $(‘#output2‘).html("提交成功!欢迎下次再来!").show();
  7. });
  8. return false; //阻止表单默认提交
  9. });

通过Form插件的两个核心方法,都可以在不修改表单的HTML代码结构的情况下,轻易地将表单的提交方式升级为Ajax提交方式
ajaxForm() 和 ajaxSubmit() 都能接受0个或1个参数,当为单个参数时,该参数既可以是一个回调函数,也可以是一个options对象,上面的例子就是回调函数,下面介绍options对象,使得它们对表单拥有更多的控制权

[javascript] view plain copy

print?

  1. var options = {
  2. target: ‘#output‘,          //把服务器返回的内容放入id为output的元素中
  3. beforeSubmit: showRequest,  //提交前的回调函数
  4. success: showResponse,      //提交后的回调函数
  5. //url: url,                 //默认是form的action, 如果申明,则会覆盖
  6. //type: type,               //默认是form的method(get or post),如果申明,则会覆盖
  7. //dataType: null,           //html(默认), xml, script, json...接受服务端返回的类型
  8. //clearForm: true,          //成功提交后,清除所有表单元素的值
  9. //resetForm: true,          //成功提交后,重置所有表单元素的值
  10. timeout: 3000               //限制请求的时间,当请求大于3秒后,跳出请求
  11. }
  12. function showRequest(formData, jqForm, options){
  13. //formData: 数组对象,提交表单时,Form插件会以Ajax方式自动提交这些数据,格式如:[{name:user,value:val },{name:pwd,value:pwd}]
  14. //jqForm:   jQuery对象,封装了表单的元素
  15. //options:  options对象
  16. var queryString = $.param(formData);   //name=1&address=2
  17. var formElement = jqForm[0];              //将jqForm转换为DOM对象
  18. var address = formElement.address.value;  //访问jqForm的DOM元素
  19. return true;  //只要不返回false,表单都会提交,在这里可以对表单元素进行验证
  20. };
  21. function showResponse(responseText, statusText){
  22. //dataType=xml
  23. var name = $(‘name‘, responseXML).text();
  24. var address = $(‘address‘, responseXML).text();
  25. $("#xmlout").html(name + "  " + address);
  26. //dataType=json
  27. $("#jsonout").html(data.name + "  " + data.address);
  28. };
  29. $("#myForm").ajaxForm(options);
  30. $("#myForm2").submit(funtion(){
  31. $(this).ajaxSubmit(options);
  32. return false;   //阻止表单默认提交
  33. });

表单提交之前进行验证:  beforeSubmit会在表单提交前被调用,如果beforeSubmit返回false,则会阻止表单提交

[javascript] view plain copy

print?

    1. beforeSubmit: validate
    2. function validate(formData, jqForm, options) { //在这里对表单进行验证,如果不符合规则,将返回false来阻止表单提交,直到符合规则为止
    3. //方式一:利用formData参数
    4. for (var i=0; i < formData.length; i++) {
    5. if (!formData[i].value) {
    6. alert(‘用户名,地址和自我介绍都不能为空!‘);
    7. return false;
    8. }
    9. }
    10. //方式二:利用jqForm对象
    11. var form = jqForm[0]; //把表单转化为dom对象
    12. if (!form.name.value || !form.address.value) {
    13. alert(‘用户名和地址不能为空,自我介绍可以为空!‘);
    14. return false;
    15. }
    16. //方式三:利用fieldValue()方法,fieldValue 是表单插件的一个方法,它能找出表单中的元素的值,返回一个集合。
    17. var usernameValue = $(‘input[name=name]‘).fieldValue();
    18. var addressValue = $(‘input[name=address]‘).fieldValue();
    19. if (!usernameValue[0] || !addressValue[0]) {
    20. alert(‘用户名和地址不能为空,自我介绍可以为空!‘);
    21. return false;
    22. }
    23. var queryString = $.param(formData); //组装数据
    24. //alert(queryString); //类似 : name=1&add=2
    25. return true;
    26. }
时间: 2025-01-06 06:30:09

Ajax表单提交的相关文章

PHP jQuery ajax 表单提交小示例(含insert, select)

功能描述:能够通过表单向MySQL数据库新增记录,能够表单提供关键词进行查询 index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"&g

使用Jquery.form.js ajax表单提交插件弹出下载提示框

现象: 使用jquery的from做ajax表单提交的时候,后台处理完毕返回json字符串,此时浏览器提示下载一个json文件而不是在success里面继续解析该json对象. 具体的原因: 浏览器兼容性的问题.在谷歌和火狐下没这个问题,我用的ie9测试是有这个问题的.具体的详细我参照的该链接: http://zhidao.baidu.com/link?url=uTXondC9ECEfdObEWbq7V2O7-UW_oXtoVcneVqH_Dmj2hUXjM3y6wMFnQYsUupdWC0Tf

Ajax表单提交插件jquery form

jQuery Form插件是一个优秀的Ajax表单插件,我们可以非常容易的使用它处理表单控件的值,清空和复位表单控件,附件上传,以及完成Ajax表单提交. jQuery Form有两个核心方法ajaxForm()和ajaxSubmit(),本文我们重点介绍ajaxSubmit()的应用. HTML 首先我们载入jquery库和jquery.form.js插件.jquery.form.js插件的官网地址:http://www.malsup.com/jquery/form/ <script type

jquery.form.js(ajax表单提交)

Form插件地址: 官方网站:http://malsup.com/jQuery/form/ 翻译地址:http://www.aqee.net/docs/jquery.form.plugin/jquery.form.plugin.html#getting-started 一.准备工作 写一个表单: <form id="reg" action="123.php" method="post"> <p> <label for

Jquery Ajax表单提交插件jquery form用法

首先我们载入jquery库和jquery.form.js插件.jquery.form.js插件的官网地址:http://www.malsup.com/jquery/form/  代码如下 复制代码 <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.form.m

jquery ajax 表单提交被浏览器拦截解决办法

通常jquery的submit表单提交是不会被拦截的,但是用jquery ajax异步提交是会被拒绝的,既然是异步提交造成的问题,那就好解决了,因为jquery ajax方法提供了参数选项: async :true, 默认设置下,所有请求均为异步请求.如果需要发送同步请求,请将此选项设置为 false.注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行. 原文地址:https://www.cnblogs.com/richardcastle/p/8297325.html

jQuery ajax表单提交实现局部刷新

jQuery Ajax 异步提交 Form 表单,如果使用 get 请求,注意中文乱码问题,jquery 会先使用 iso8859-1 解码,然后发给服务器,如果使用 post 请求,则直接将中文内容提交给服务器解析. 引入插件: jquery.min.js jquery.form.js 提交表单: 以下为引用内容: // 动态加载页面 // id 显示页面的容器组件ID2 // url 欲加载页面网址 // gop get请求还是post请求,默认get function loadPage(i

form表单和ajax表单提交(Html.BeginForm()、Ajax.BeginForm())的差别

有如下几种区别: 1. Ajax在提交.请求.接收时,都是异步进行的,网页不需要刷新: Form提交则是新建一个页面,哪怕是提交给自己本身的页面,也是需要刷新的: 2. A在提交时,是在后台新建一个请求: F却是放弃本页面,而后再请求: 3. A必须要使用JS来实现,不启用JS的浏览器,无法完成该操作: F却是浏览器的本能,无论是否开启JS,都可以提交表单: 4. A在提交.请求.接收时,整个过程都需要使用程序来对其数据进行处理: F提交时,却是根据你的表单结构自动完成,不需要代码干预: 注意:

jQuery ajax表单提交

Jquery的$.ajax方法可以实现ajax调用,要设置url,post,参数等. 如果要提交现有Form需要写很多代码,何不直接将Form的提交直接转移到ajax中呢. 以前的处理方法 如Form代码如下: <form id="Form1" action="action.aspx" method="post" >名称:<input name="name" type="text" /&g