针对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 ...
随机推荐
- 二级python考试大纲以及考试指导复习方案
二级python考试大纲与复习指导 本人也是在备考二级py 可能理解不对的地方请指正 参考网络,侵权删除 考纲解读→ 一.考试介绍 1.1考试人群 全国计算机等级考试(python语言程序设计(二 ...
- Java使用Geotools读取shape矢量数据
作为GIS开发者而言,矢量数据是我们经常要用到的,而shape数据是矢量数据中最常用的格式,因此解析shape数据也是作为GIS软件开发人员必备的基础技能,而GeoTools无疑是Java最好用来处理 ...
- laravel 数据验证规则
return [ 'accepted' => '必须为yes,on,1,true', 'active_url' => '是否是一个合法的url,基于PHP的checkdnsrr函数,因此也 ...
- CF258D题解
太厉害啦 首先做期望题最不能忘记的就是期望的线性性. 所以我们直接将全局逆序对对数拆成两个数其中一个比另一个大的期望(概率),设为 \(f[i][j]\),初值为 \([a_i>b_j]\). ...
- 淘宝 NPM 镜像站切换新域名啦
镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 源起 淘宝 NPM 镜像站(npm.taobao.org)自 2014 年 正式对外服务,一开始只是想简单地做 NPM 的中国镜像站点,回馈国内前 ...
- Nginx 陷阱和常见错误
Nginx 陷阱和常见错误 翻译自:https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/ 警告: 请 ...
- 【Vulnhub】LazySysAdmin
下载链接 https://download.vulnhub.com/lazysysadmin/Lazysysadmin.zip 运行环境 Virtualbox Vnware Workstation p ...
- linux的文件与目录的权限设置
@font-face { font-family: 宋体 } @font-face { font-family: "Cambria Math" } @font-face { fon ...
- HTTP 错误 500.21 - Internal Server Error 解决方案【转】
HTTP 错误 500.21 - Internal Server Error 解决方案: 今天在测试网站的时候,在浏览器中输入http://localhost/时,发生如下错误: HTTP Erro ...
- 学习廖雪峰的Git教程2--远程仓库
今天跳过之前版本管理,先来学习远程仓库内容: 1.创建ssh(这是为没有ssh key准备的,如果有就可以进行下一步: 敲入 $ ssh-keygen -t rsa -C "youremai ...