JS表自动取值赋值
/*
*
* 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 };
})();
JS表自动取值赋值的更多相关文章
- label用js,jquery取值赋值,以及怎么在后台取值
label标签在JS和Jquery中使用不能像其他标签一样用value获取它的值: 可以这样: JS: var label=document.getElementByIdx_x("id&qu ...
- js对div取值与赋值
js对div取值与赋值 因为JavaScript运行时,id="test1" 的那个div元素可能还没解析和加载,js加载是有顺序的.只需把 js 整个搬到 后面即可. 还有一个特 ...
- js表单快速取值/赋值 快速生成下拉框
1.表单取值/赋值公共方法 //表单序列化:文本框的name字段和数据源一致<form id="myForm" onsubmit="return false;&qu ...
- JQuery关于span标签的取值赋值
span取值赋值方法有别于一般的页面元素.JQ://赋值$("#spanid").html("hello world") //取值$("#spanid ...
- Jquery 关于span标签的取值赋值用法
span是最简单的容器,可以当作一个形式标签,其取值赋值方法有别于一般的页面元素. //赋值 $("#spanid").html(value) //取值 $("#span ...
- Jquery操作下拉框(DropDownList)实现取值赋值
Jquery操作下拉框(DropDownList)想必大家都有所接触吧,下面与大家分享下对DropDownList进行取值赋值的实现代码 1. 获取选中项: 获取选中项的Value值: $('sele ...
- Jquery操作下拉框(DropDownList)的取值赋值实现代码(王欢)
Jquery操作下拉框(DropDownList)的取值赋值实现代码(王欢) 1. 获取选中项: 获取选中项的Value值: $('select#sel option:selected').val() ...
- winform 批量控件取值赋值
以前写winform 最多写几个文本框,最近需要入录一个人员信息,那好几十个字段,一下子干蒙了,这要是一个个取值赋值都写到明天了,于是就自己写了个方法,也不是什么高大上的,就是很简单很普通很low的方 ...
- Dynamics 365-表单元素取值/赋值
取值/赋值 参考: 山人丶 提示: 查找类型赋值时需指定目标实体,记录名称及id值 时间和日期类型赋值时需赋值Date类型 //获取new_name的值(单行文本) Xrm.Page.getAttri ...
随机推荐
- DotnetBrowser入门教程-(2)启动简单的Web服务
微软的网页服务向来与IIS捆绑紧密,虽然.net core可以脱离iis了,但是基于国内的xp系统,.net core类库的精简,使得我们仍然在dotnetbrowser增加了对web服务的支持. 先 ...
- String转Map的工具类
借鉴代码 public class StringToMapUtil { public static Map<String, String> getValue(String param) { ...
- SharePoint 2013 对话框
The quick way to open a sharepoint 2013 dialog modal form is via Javascript below 1 2 3 4 5 function ...
- 【电子签章】HTML格式合同转化成PDF文件
代码地址如下:http://www.demodashi.com/demo/12476.html 一.主要思路 通过itextpdf 生成想要的pdf 文件 通过itextpdf 中 XMLWorker ...
- OpenTSDB设计解读
OpenTSDB是基于HBase存储时间序列数据的一个开源数据库,确切地说,它仅仅是一个HBase的应用而已,其对于时间序列数据的处理能够供其它系统參考和借鉴.本文会针对它在数据库的设计方面展开一些探 ...
- 应用程序之UITableView的Plain用法和cell缓存池优化
效果展示 过程分析 代码实现 cell缓存池优化 一.效果展示 二.过程分析 首先通过三步创建数据,展示数据 监听选中某一个cell时调用的方法 在cell中创建一个对话框 修改对话框中的值,并且重新 ...
- 关于meta标签的name="viewport" 概述
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scal ...
- centos6.6安装mysql5.5
在mysql官网下载mysql-5.5.54-linux2.6-x86_64.tar.gz解压:tar -zxvf mysql-5.5.54-linux2.6-x86_64.tar.gz修改名字mv ...
- leetCode 83.Remove Duplicates from Sorted List(删除排序链表的反复) 解题思路和方法
Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ...
- CentOS 6.5语言包裁剪
https://www.ibm.com/developerworks/cn/linux/l-cn-linuxglb/ 浅析 Linux 的国际化与本地化机制 Linux 是一个国际化的操作系统,它的工 ...