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


Posted in Javascript onAugust 24, 2016

最近在思考优化项目,想自己扩展一个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提交表单信息的简单方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用JavaScript和注册表脚本实现右键收藏Web页选中文本
Jan 28 Javascript
Jquery获取和修改img的src值的方法
Feb 17 Javascript
jQuery实现的自适应焦点图效果完整实例
Aug 24 Javascript
Javascript数组循环遍历之forEach详解
Nov 07 Javascript
js以及jquery实现手风琴效果
Apr 17 Javascript
自定义vue全局组件use使用、vuex的使用详解
Jun 14 Javascript
详解vue渲染从后台获取的json数据
Jul 06 Javascript
JS重学系列之聊聊new操作符
Mar 04 Javascript
vue下载excel的实现代码后台用post方法
May 10 Javascript
微信小程序bindtap事件与冒泡阻止详解
Aug 08 Javascript
小程序如何自主实现拦截器的示例代码
Nov 04 Javascript
详解阿里Node.js技术文档之process模块学习指南
Jan 04 Javascript
AngularJS下对数组的对比分析
Aug 24 #Javascript
AngularJS  $modal弹出框实例代码
Aug 24 #Javascript
AngularJS中比较两个数组是否相同
Aug 24 #Javascript
javascript深拷贝(deepClone)详解
Aug 24 #Javascript
js实现无缝循环滚动
Jun 23 #Javascript
jquery实现网页定位导航
Aug 23 #Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
Aug 23 #Javascript
You might like
PHP安全配置
2006/12/06 PHP
php利用cookie实现访问次数统计代码
2011/05/19 PHP
smarty模板判断数组为空的方法
2015/06/10 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
15个款优秀的 jQuery 图片特效插件推荐
2011/11/21 Javascript
jQuery隔行变色与普通JS写法的对比
2013/04/21 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
JavaScript仿百度图片浏览效果
2016/11/23 Javascript
详解Javascript获取缓存和清除缓存API
2017/05/25 Javascript
AngularJS select设置默认值的实现方法
2017/08/25 Javascript
JS使用正则表达式判断输入框失去焦点事件
2019/10/16 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
Node使用Nodemailer发送邮件的方法实现
2020/02/24 Javascript
解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题
2020/10/29 Javascript
Python获取SQLite查询结果表列名的方法
2017/06/21 Python
Python获取二维矩阵每列最大值的方法
2018/04/03 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
2018/04/22 Python
Python for循环与range函数的使用详解
2019/03/23 Python
Python中psutil的介绍与用法
2019/05/02 Python
python实现图片九宫格分割
2021/03/07 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
keras打印loss对权重的导数方式
2020/06/10 Python
python利用faker库批量生成测试数据
2020/10/15 Python
python palywright库基本使用
2021/01/21 Python
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
27个经典Linux面试题及答案,你知道几个?
2013/01/10 面试题
财经学院自荐信范文
2014/02/02 职场文书
美术学专业求职信
2014/07/23 职场文书
大学拉赞助协议书范文
2014/09/26 职场文书
2014年车间主任工作总结
2014/12/10 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
div与span之间的区别与使用介绍
2021/12/06 HTML / CSS
《火纹风花雪月无双》预告“神秘雇佣兵” 紫发剑客
2022/04/13 其他游戏