/*
*
* 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 };
})();

最新文章

  1. 判断iframe加载完成
  2. zookeeper 应用
  3. 通过WMI接口监控服务器性能
  4. hdu4914 Linear recursive sequence
  5. VMWare Workstation 10.0 Preview CN
  6. Unity Shaders
  7. MyBatis(3.2.3) - Handling enumeration types
  8. php中的后期静态绑定(&quot;Late Static Binding&quot;)
  9. jQuery kxbdMarquee 无缝滚动
  10. mysql 出现Duplicate entry ‘xxx’ for key ‘PRIMARY’,一个自增字段达到了上限,
  11. 4.4、Libgdx使用方法查询运行环境相关属性
  12. Azkaban各种类型的Job编写
  13. CF1121C 模拟
  14. MongoDB常用操作--简介
  15. HDU 1171 01背包
  16. Tomcat8源码笔记(一)Lifecycle接口
  17. Angular4学习笔记(五)- 数据绑定、响应式编程和管道
  18. c++期末考
  19. UGUI之控件以及按钮的监听事件系统
  20. window下完全删除nodejs

热门文章

  1. java程序容错
  2. 避免在block中循环引用(Retain Cycle in Block)
  3. C# 导出 数据 到Excel
  4. 在容器内执行go编译程序的坑
  5. 【前端GUI】——对一些优秀网页设计作品的分析&amp;心得
  6. 每天一个命令 ls
  7. C 语言经典100例
  8. axios 异步加载 导致 {{}} 中变量为 undefined 报错 的 解决方案
  9. 03_Nginx加入新模块
  10. java导出excel不须要额外jar包