首页 技术 正文
技术 2022年11月15日
0 收藏 488 点赞 4,481 浏览 2128 个字
/*
*
* V1.0.0 表单自动取值、赋值插件
* 表单类型:text radio select-one checkbox textarea
* 注意项:
* 1.表单必须设置name属性
* 调用
* 取值:formCore.getFormValues()
* 赋值:formCore.setFormValues(json)
*/
var formCore = (function() {
var getCbxValues = function(name) {
var values = '';
var cks = document.getElementsByName(name); for (var i = 0; i < cks.length; i++) {
if (cks[i].checked) {
values += cks[i].value + ',';
}
} if (values != '') {
values = values.substring(0, values.length - 1);
} return values;
}; var checkFieldId = function(id) {
var obj = document.getElementById(id); if (obj == null) {
alert("该区域ID对象不存在,请检查!");
return false;
} return true;
} /*
* 表单值"和\需要转义 如\\ \"
*/
var checkIptValue = function(v) {
return v.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
} var isInArray = function(arr, value) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] == value) {
return true;
}
} return false;
} var setChecked = function(name, value) {
var cks = document.getElementsByName(name);
var arr = value.split(','); for (var i = 0; i < cks.length; i++) {
if (isInArray(arr, cks[i].value)) {
cks[i].checked = true;
}
}
} var getFormValues = function(fieldId) {
var ipts = null; if (fieldId != undefined) {
if (checkFieldId(fieldId)) {
ipts = $("#" + fieldObj).find(":input");
} else {
return false;
}
} else {
ipts = $(document.body).find(":input");
} var json = '{'; if (ipts.length > 0) {
var obj = null;
var oldCbxName = '',
objName,
objType; for (var i = 0; i < ipts.length; i++) {
obj = ipts[i];
objName = obj.name;
objType = obj.type; if (objType == "text" || objType == "textarea") {
json += '"' + objName + '":"' + checkIptValue($(obj).val()) + '",';
} else if (objType == "radio") {
if (obj.checked) {
json += '"' + objName + '":"' + $(obj).val() + '",';
}
} else if (objType == "select-one") {
json += '"' + objName + '":"' + $(obj).val() + '",';
} else if (objType == "checkbox") {
//相同类型checkbox只取一次
if (oldCbxName != objName) {
oldCbxName = objName;
json += '"' + objName + '":"' + getCbxValues(oldCbxName) + '",';
}
}
} json = json.substring(0, json.length - 1);
} json += '}';
return json;
}; var setFormValues = function(json) {
if (json != undefined && json != null) {
var obj = null,
sel = null,
objType = null; for (var a in json) {
sel = ":input[name='" + a + "']";
obj = $(sel);
objType = obj[0].type; if (objType == "text" || objType == "select-one" || objType == "textarea") {
obj.val(json[a]);
} else if (objType == "radio" || objType == "checkbox") {
setChecked(a, json[a]);
}
}
}
}; return { getFormValues: getFormValues, setFormValues: setFormValues };
})();
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,965
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,486
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,331
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,114
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,747
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,781