针对form表单赋值封装
1 (function ($){
2 $.fn.extend({
3 exajax:function(url,opts,convert){
4 var ajaxParam = {
5 url:url,
6 async : false, // 同步
7 type:'POST', // 请求类型
8 cache:false, // 不缓存
9 dataType:'json',
10 success:'',
11 error : ''
12 };
13 opts =opts||{};
14 for(var k in opts){
15 if(ajaxParam.hasOwnProperty(k)||'data'==k){
16 if(k=='data'){
17 try{
18 var params = opts['data'];
19 if(!convert){
20 params = JSON.stringify(params);
21 ajaxParam.contentType= 'application/json';
22 }
23 ajaxParam.data= params;
24 }catch(e){
25 }
26 }else
27 if(k=='success'){
28 var success = opts[k];
29 ajaxParam[k] =function(data){
30 if(success){
31 if(typeof success == 'function'){
32 success.apply(success,[data]);
33 }else{
34 if(success.message){
35 BootstrapDialog.show({
36 title: success.title||'系统消息',
37 message: success.message||'操作成功',
38 buttons: [{
39 label: '确定',
40 action: function(dialogItself){
41 dialogItself.close();
42 }
43 }]
44 });
45 }
46
47 }
48 }
49 }
50 }else
51 if(k=='error'){
52 var error = opts[k];
53 ajaxParam[k] =function(e) {
54 if(error){
55 if(typeof error == 'function'){
56 error.apply(error,[e]);
57 }else{
58 if(error.message){
59 BootstrapDialog.show({
60 title: error.title||'系统错误',
61 message: error.message||'系统未知错误 - '+e.description,
62 buttons: [{
63 label: '确定',
64 action: function(dialogItself){
65 dialogItself.close();
66 }
67 }]
68 });
69 }
70 }
71 }
72 }
73 }else{
74 ajaxParam[k] = opts[k];
75 }
76 }
77 }
78 $.ajax(ajaxParam);
79 },
80 getJsonFormValues:function(){
81 el = $(this);
82 var elementsObj = el.get(0).elements;
83 var ret = {};
84 if(elementsObj){
85 $.each(elementsObj,function(index, obj){
86 val = null;
87 if (obj.tagName == "INPUT" || obj.tagName == "SELECT") {
88 val = obj.value;
89 if(obj.name == "id" && obj.value == ""){
90 val = null;
91 }
92 if(obj.type == 'checkbox' || obj.type == 'radio'){
93 if($(obj).is(':checked')){
94 var result;
95 if(typeof obj.value !=undefined){
96 result = obj.value;
97 }
98 if(obj.type == 'radio'){
99 ret[obj.name]=result;
100 }else{
101 if(!ret[obj.name]){
102 ret[obj.name] = [];
103 }
104 ret[obj.name].push(result);
105 }
106 }
107 }
108 if(obj.type != 'checkbox' && obj.type != 'radio'){
109 ret[obj.name] = val;
110 }
111 }
112 });
113 }
114 return ret;
115 },
116 getFormValues:function(){
117 el = $(this);
118 var result = $(this).serialize();
119 //var elementsObj = el.get(0).elements;
120 //var ret = {};
121 //if(elementsObj){
122 //$.each(elementsObj,function(index, obj){
123 //if(obj.type == 'hidden'){
124 //result += "&" +obj.name+"="+obj.value;
125 //}
126 //});
127 //}
128 return result;
129 },
130 getFormValueNoHidden:function(){
131 el = $(this);
132 var result = $(this).serialize();
133 var elementsObj = el.get(0).elements;
134 var ret = {};
135 if(elementsObj){
136 $.each(elementsObj,function(index, obj){
137 });
138 }
139 return result;
140 },
141 setFormValues:function(data){
142 el = $(this);
143 var elementsObj = el.get(0).elements;
144 if (elementsObj) {
145 $.each(elementsObj,function(index, obj){
146 if (obj.tagName == "INPUT" || obj.tagName == "SELECT") {
147 val = null;
148 if(data[obj.name] != undefined){
149 var func = data[obj.name];
150 if(typeof(func)=='function'){
151 val = func.apply(func,[val,obj,elementsObj]);
152 }else{
153 val = func;
154 }
155 }
156 //if(format&&format[obj.name]!= undefined){
157 //func = format[obj.name];
158 //if(typeof(func)=='function'){
159 //val = func.apply(func,[val,obj,data]);
160 //}else{
161 //val = func;
162 //}
163 //}
164 if(obj.type == 'checkbox' || obj.type == 'radio'){
165 if(obj.value !=undefined && val instanceof Array){
166 for(var v in val){
167 if(val[v]==obj.value){
168 $(obj).prop("checked",true);
169 }
170 }
171 }else{
172 if(null!=val &&val!=undefined&&(val == true || val == 1||val==obj.value)){
173 $(obj).prop("checked",true);
174 }else{
175 $(obj).prop("checked",false);
176 }
177 }
178 }else if(obj.type=='file'){
179 // do nothing;
180 }else{
181 obj.value = val;
182 }
183 }
184 });
185 }
186 }
187 });
188 })(jQuery);
针对form表单赋值封装的更多相关文章
- jquery form表单赋值封装
;!(function ($) { $.fn.setFormValue = function (options) { var $this = $(this); $.each(options, func ...
- 文档驱动 —— 表单组件(六):基于AntDV的Form表单的封装,目标还是不写代码
开源代码 https://github.com/naturefwvue/nf-vue3-ant 也不知道大家是怎么写代码的,这里全当抛砖引玉 为何封装? AntDV非常强大,效果也非常漂亮,功能强大, ...
- 10.12Django form表单
2018-10-12 15:24:23 From表单参考连接: https://www.cnblogs.com/yuanchenqi/articles/7614921.html 新增了ModelFor ...
- java中的http请求的封装(GET、POST、form表单形式)
目前JAVA实现HTTP请求的方法用的最多的有两种:一种是通过HTTPClient这种第三方的开源框架去实现.HTTPClient对HTTP的封装性比较不错,通过它基本上能够满足我们大部分的需求,Ht ...
- 封装Vue Element的form表单组件
前两天封装了一个基于vue和Element的table表格组件,阅读的人还是很多的,看来大家都是很认同组件化.高复用这种开发模式的,毕竟开发效率高,代码优雅,逼格高嘛.虽然这两天我的心情很糟糕,就像& ...
- jquery自动将form表单封装成json的具体实现
前端页面:<span style="font-size:14px;"> <form action="" method="post&q ...
- form表单 获取与赋值
form表单中使用频繁的组件: 文本框.单选框.多选框.下拉框.文本域form通过getValues()获取表单中所有name的值 通过setValues({key:values})给对应的name值 ...
- ajax无刷新方式对form表单进行赋值!
/** * 把json数据填充到from表单中 */ <form id="editForm" action="user.php"> 用户名:< ...
- Vue + Element-ui实现后台管理系统(5)---封装一个Form表单组件和Table表格组件
封装一个Form表单组件和Table组件 有关后台管理系统之前写过四遍博客,看这篇之前最好先看下这四篇博客.另外这里只展示关键部分代码,项目代码放在github上: mall-manage-syste ...
随机推荐
- linux作业--第三周
1.统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来 [root@localhost ~]# cat /etc/passwd | grep ...
- 微信小程序下滑时能实现加载更多数据
wxml代码: <view class="scroll"> <!-- 绑订页面上拉触底事件的处理函数onReachBottom事件 --> <scro ...
- tp 七牛云文件上传
1.先创建好七牛云账号和存储空间 申请七牛云账号: 创建七牛云存储空间: 在账号的秘钥管理里面创建秘钥 获取AccessKey / SecretKey: 2.集成PHP-SDK 七牛云开发文档:htt ...
- php7废弃mcrypt加密,使用openssl替换
概要: php从7.0升级到7.1废弃了一个扩展,即mcrypt扩展,虽然安装上扩展也能正常使用,但是会发出警告,告诉我们mcrypt相关方法已经被废弃,到了7.2,已经被移除,因此不建议继续使用. ...
- promise 理解与总结
对Promise的理解 Promise是异步编程的一种解决方案,可以获取异步操作的消息,避免了地狱回调,它比传统的解决方案回调函数和事件更合理和更强大. 所谓Promise,简单说就是一个容器,里面保 ...
- 【面经】MyBatis常见面试问题
1.什么是 MyBatis? 答:MyBatis 是一个可以自定义 SQL.存储过程和高级映射的持久层框架. 2.讲下 MyBatis 的缓存 答:MyBatis 的缓存分为一级缓存和二级缓存,一级缓 ...
- 5分钟了解Redis的内部实现跳跃表(skiplist)
跳跃表简介 跳跃表(skiplist)是一个有序的数据结构,它通过在每个节点维护不同层次指向后续节点的指针,以达到快速访问指定节点的目的.跳跃表在查找指定节点时,平均时间复杂度为,最坏时间复杂度为O( ...
- centos根目录扩容
一.扫描磁盘 若已在虚拟机增加了磁盘且没看到磁盘 运行下面的命令来查找系统中所有的主机总线编号: # ls /sys/class/scsi_host 得到主机总线编号后,运行以下命令来发现新的磁盘: ...
- python Apache和php错误日志邮件报警
# qianxiao996精心制作 #博客地址:https://blog.csdn.net/qq_36374896 #!/usr/bin/python #-*- coding: utf-8 -* im ...
- ms17-010-永恒之蓝漏洞利用教程
实验环境:虚拟机:kali-linux windows 7 请自行下载安装 1.打开虚拟机 启动kali-linux 启动windows7(未装补丁) 2.获取IP地址(ifconfig ipconf ...