欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

[原创]JS获取form表单数据

程序员文章站 2023-11-07 19:04:40
以下代码可放在一个js文件中,以便通用: //获取指定表单中指定标签对象 function getElements(formId, label) { var form = document.getElementById(formId);/* 获取表单引用(对象) */ var elements = ......

以下代码可放在一个js文件中,以便通用:

//获取指定表单中指定标签对象
function getelements(formid, label) {
var form = document.getelementbyid(formid);/* 获取表单引用(对象) */
var elements = [];
var tagelements = form.getelementsbytagname(label);/* 获取表单中指定标签名的元素引用(对象)数组 */
for (var j = 0; j < tagelements.length; j++) {
elements.push(tagelements[j]);
}
return elements;
}
// ----注:tagelements[j].name这种写法并不能确定该对象是哪一种类型的标签,如果是单复选按钮标签,则需要判断是否被选中的情况,所以要写一个方法过滤一下:
// 根据标签type获取标签name,value(过滤)
function typefilter(element) {
var label = [];
switch (element.type.tolowercase()) { /* 表单元素引用数组.元素类型.字符串转小写 */
case 'submit':
case 'hidden':
case 'password':
case 'text':
label.push({
name : element.name,/* 自定义的列名:列值 */
value : element.value
});
return label;
case 'checkbox':
case 'radio':
if (element.checked)
label.push({
name : element.name,/* 自定义的列名:列值 */
value : element.value
});
return label;
}
return false;
}
//---注:case项可自定义,比如去掉 case 'submit'这种没意义的可能。

// 获取指定表单的指定标签的name和value,并存到一个数组里,形参label可传入'*',表示全部标签
function get_form_label_name_value(formid, label) {
var elements = getelements(formid, label);
var group = [];
var one = [];
for (var i = 0; i < elements.length; i++) {
one = typefilter(elements[i]);
group.push({
name : one[0].name,/* 自定义的列名:列值 */
value : one[0].value
});
}
return group;
}

//-----------------------------------------------------------------------------------

//前台调用例子:
//function show() {
// var nv = get_form_label_name_value('表单id','标签如input');
// if (nv != null && nv.length > 0) {
// for (var i = 0; i < nv.length; i++) {
// if (nv[i].name != "") { /*这个if不加也可以,但是为了避免特殊情况,加上反而更有利于之后存入数据库等操作*/
// alert(nv[i].name);
// alert(nv[i].value);
// }
// }
// }
//}