jquery实现ajax提交表单信息的简单方法(推荐)

最近在思考优化项目,想自己扩展一个jquery自动获取表单中的数据进行ajax提交。本人没有完整性学习jquery,基本上是现学现找,有点困难。

主要是扩展和拼接json转对象

很简单,附上代码:

; (function ($) { 

  $.fn.ajaxForm = function (options) {
    var defaults = {
      modelname: 'model',//后台对象接收名称
      url: '/',//提交地址
      postType: 'POST',//提交方式
      dataType: 'JSON',//数据返回类型
      async: false,//是否异步
      optionObj: [],//自定义参数
      callback: function () { },//成功回调
    };
    var options = $.extend(defaults, options);//合并参数 

    if (options.url == '') {
      alert('请填写提交地址');
      return;
    }
    var postvals = {}; 

    //textbox/隐藏域/textarea/radio选中值
    $(this).find('input[type="text"],input[type="hidden"],textarea,input[type="radio"]:checked').each(function () {
      if ($(this).val() != undefined) {
        var name = $(this).attr('name');
        if (name == undefined || name == '') {
          return false;
        }
        var value = $(this).val();
        var json = '{"' + name + '":"' + value + '"}';
        var obj = $.parseJSON(json);
        postvals = $.extend(postvals, obj);
      }
    }); 

    var resObj;
    if (options.optionObj != undefined || options.optionObj!=[]) {
      resObj = $.extend(postvals,options.optionObj);
    } else {
      resObj = postvals;
    } 

    $.ajax({
      type: options.postType,
      dataType: options.dataType,
      data: resObj,
      async: options.async,
      url: options.url,
      success: function (json) {
        if (json.IsError) {
          alert(json.Message);
        } else {
          options.callback();
        }
      }
    });
  }; 

})(jQuery); 

使用的话配合jquery validate使用

$("#system-form").validate({
  rules: {
    SystemName: {
      required: true
    },
    Description: {
      required: true,
    },
  },
  messages: {
    SystemName: {
      required: "请填写系统名称"
    },
    Description: {
      required: "请填写系统描述"
    }
  },
  submitHandler: function(form) {
    var url = '/oa/system/' + $(form).attr('ftype');
    $(form).ajaxForm({ url: url,modelname:'system', callback: function() {
      location.href = '/oa/system/index.html';
    } });
  }
});

以上这篇jquery实现ajax提交表单信息的简单方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • jquery下异步提交表单 异步跨域提交表单

    1.使用post提交方式 2.构造表单的数格式 3.结合form表单的submit调用ajax的回调函数. 使用 jQuery 异步提交表单代码: 复制代码 代码如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>无标题页</title> </head> <script src="js/jquery-1.4.2.js">&l

  • jquery表单提交带错误信息提示效果

    效果图:     html代码: <form action="" method="" name="form2"> <div class="m_t30 error_div2"> <div> 我是 <select name="identity" id="ko" class="form-control"> <option

  • jquery ajax提交表单数据的两种方式

    之前实现AJAX使用Javascript脚本一个一个敲出来的,很繁琐.学习Jquery之后就感觉实现AJAX并不是那么的困难了,当然除了Jquery框架外还有其它的优秀框架这里我就着重说下比较流行的Jquery.Jquery AJAX提交表单有两种方式,一是url参数提交数据,二是form提交(和平常一样在后台可以获取到Form表单的值).在所要提交的表单中,如果元素很多的话建议用第二种方式进行提交,当然你要是想练练"打字水平"的话用第一种方式提交也未尝不可,相信开发者都不想费白劲吧!

  • jquery实现ajax提交form表单的方法总结

    方法一: 复制代码 代码如下: function AddHandlingFeeToRefund() {            var AjaxURL= "../OrderManagement/AjaxModifyOrderService.aspx";                   alert($('#formAddHandlingFee').serialize());                $.ajax({                    type: "P

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

    ajaxSubmit(obj)方法是jQuery的一个插件jquery.form.js里面的方法,所以使用此方法需要先引入这个插件.如下所示: 复制代码 代码如下: <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script><script src="http://malsup.github.io/jquery.form.js"></script>

  • JQuery通过Ajax提交表单并返回结果

    如下: 1:非Ajax 前台: 对应后台: 2:JQuery之Ajax 在介绍使用JQuery提交表单前,我们需要首先引用jquery.form.js,它来自于http://www.malsup.com/jquery/form/,至此,我们需要引用的JS文件有: 功能要求:Ajax提交表单,在控制器HelloWorld4Controller中处理请求,并返回若干数据,数据格式为JSON. 首先,我们假设返回的JSON实体为: 复制代码 代码如下: public class LoginResult

  • jquery序列化form表单使用ajax提交后处理返回的json数据

    1.返回json字符串: 复制代码 代码如下: /** 将一个字符串输出到浏览器 */     protected void writeJson(String json) {         PrintWriter pw = null;         try {             servletResponse.setContentType("text/plain;charset=UTF-8");             pw = servletResponse.getWrit

  • jQuery ajax中使用serialize()方法提交表单数据示例

    jQuery ajax中数据以键值对(Key/Value)的形式发送到服务器,使用ajax提交表单数据时可以使用jQuery ajax的serialize() 方法表单序列化为键值对(key1=value1&key2=value2-)后提交.serialize() 方法使用标准的 URL-encoded 编码表示文本字符串.下面是使用serialize()序列化表单的实例: 复制代码 代码如下: $.ajax({   type: "POST",   url: ajaxCallU

  • JQuery打造PHP的AJAX表单提交实例

    如果你对JQuery的基本语法还不是很熟悉,请搜索本站的教程资源.如果你对PHPMailer用法不熟悉,请查看本站的另一篇文章<使用PHPMailer类库发送电子邮件>. 第一步,创建一个表单HTML页面 这里,我们只展示主要的表单部分HTML结构代码: 复制代码 代码如下: <div id="contact_form"> <form name="contact" method="post" action="

  • jQuery实现form表单基于ajax无刷新提交方法详解

    本文实例讲述了jQuery实现form表单基于ajax无刷新提交方法.分享给大家供大家参考,具体如下: 首先,新建Login.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.o

随机推荐