您的位置:首页 > Web前端 > JavaScript

JS表自动取值赋值

2013-07-09 14:14 113 查看
/*
*
* 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 };
})();


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: