
/
@see 获得表单里的数据(不光是表单,任何元素都可以)
@param id 表单的ID
@param type 要返回的类型: string返回用&拼接的字符串, object返回一个js对象, json表示返回json格式的字符串
@return 根据type而定,默认为string
/
function getFormData(id, type) {
if (getO(id) != null) {
var str = "";
var obj = new Object();
var json = "{";
var array = getO(id)getElementsByTagName("input");
var rdbArr = new Array();
var ckbArr = new Array();
for (var i = 0; i < arraylength; i++) {
if (array[i]name != null && array[i]name != "") {
if (array[i]type == null || array[i]type == "") {
array[i]type = "text";
}
var inType = array[i]typetoLowerCase();
if (inType == "text" || inType == "hidden" || inType == "password") {
str += array[i]name + "=" + array[i]value + "&";
obj[array[i]name] = array[i]value;
json += array[i]name + ":'" + array[i]valuereplace(/\'/g, "\"") + "',";
} else if (inType == "radio") {
if (!isArrayHave(rdbArr, array[i]name)) {
rdbArr[rdbArrlength] = array[i]name;
}
} else if (inType == "checkbox") {
if (!isArrayHave(ckbArr, array[i]name)) {
ckbArr[ckbArrlength] = array[i]name;
}
}
}
}
for (var i = 0; i < rdbArrlength; i++) {
var key = rdbArr[i], value = getRadio(rdbArr[i]);
str += key + "=" + value + "&";
obj[key] = value;
json += key + ":'" + valuereplace(/\'/g, "\"") + "',";
}
for (var i = 0; i < ckbArrlength; i++) {
var key = ckbArr[i], value = getBox(ckbArr[i]);
str += key + "=" + value + "&";
obj[key] = value;
json += key + ":'" + valuereplace(/\'/g, "\"") + "',";
}
array = getO(id)getElementsByTagName("textarea");
for (var i = 0; i < arraylength; i++) {
if (array[i]name != null && array[i]name != "") {
str += array[i]name + "=" + array[i]value + "&";
obj[array[i]name] = array[i]value;
json += array[i]name + ":'" + array[i]valuereplace(/\'/g, "\"") + "',";
}
}
array = getO(id)getElementsByTagName("select");
for (var i = 0; i < arraylength; i++) {
if (array[i]name != null && array[i]name != "") {
str += array[i]name + "=" + array[i]value + "&";
obj[array[i]name] = array[i]value;
json += array[i]name + ":'" + array[i]valuereplace(/\'/g, "\"") + "',";
}
}
str = (strlength > 0 strsubstring(0, strlength - 1) : str);
json = (jsonlength > 1 jsonsubstring(0, jsonlength - 1) : json);
json += "}";
if (type == "object") {
return obj;
} else if (type == "json") {
return json;
} else {
return str;
}
} else {
alertWin(id + "\u672a\u5b9a\u4e49");
}
return "";
}
问题:使用 koa-bodyparser 可以解析post提交的问题,但是发现获取不到formdata上传的文件。
后经查资料,改用 koa-body 解决:
constkoaBody = require('koa-body'); appuse(koaBody({ multipart:true, formidable: { maxFileSize:20010241024//设置上传文件大小最大限制,默认2M} }))
然后就可以在 ctxrequestfiles 里面获取到上传的 文件信息了。ctxrequestfiles 为一个对象,里面包含一个 file 字段(为你前端上传定义的值),值为文件信息,主要是文件name和path,path为临时存储路径。
二、解析xlsx文件信息
主要使用模块 node-xlsx :npm i xlsx --save
1、加载模块
使用模块:fs--主要用于写入文件;node-xlsx主要用于转换xlsx数据和读取xlsx的文件数据;
constfs = require('fs')constxlsx = require('node-xlsx');//读写xlsx的插件
2、读取功能
读取功能相对简单,直接使用模块的 prase(路径) 方法就能读取
let list = xlsxparse("/doc/helloxlsx");
返回结果,name:表名,data:二维数组。(由于Excel以表格的形式表示,因此表格的数据都是通过二维数组进行接收。)
需要注意的是:data里的第一行数组为表头的信息
[ { name:'firstSheet', data: [ [Array], [Array] ] }, { name:'secondSheet', data: [ [Array], [Array] ] } ]
3、写入功能
写入功能,对应的写入数据与上面读取功能的返回格式需要一致,以数组的形式,name:表名,data:二维数组(Excel每行每列的数据)
如下面代码,生成一个Excel文件,分别两张表,表名分别是firstSheet,secondSheet
let xlsxObj =[ { name:'firstSheet', data: [ [1,2,3], [4,5,6] ], }, { name:'secondSheet', data: [ [7,8,9], [10,1,12] ], } ]
生成Excel文件:
fswriteFileSync(路径,Buffer数据)
xlsxbuild(xlsxObj) 会将数组转换为Buffer数据
执行下面代码就会生成对应的Excel文件
fswriteFileSync('/doc/helloxlsx', xlsxbuild(xlsxObj),"binary")
<!DOCTYPE html>
<html xmlns=" >
1、首先需要创建aspnet mvc的空项目MVCForm。
2、在Models文件夹下面添加一个类文件Employee,用于form表单中字段绑定与提交,其中涉及到int、string、bool多种类型的字段。
3、在Controllers文件夹下面添加一个HomeController,用于接收与处理页面请求,此时就直接添加一个控制器即可,默认就有Index Action。
4、在HomeController的Index方法中点击右键,添加视图,会自动生成与Action相同名字的页面。
5、在Index页面中添加Form表单,包含Models文件夹下Employee实体的所有字段,同时,添加一个提交form的按钮。
6、在HomeController中添加一个用于接收页面form参数的方法。
7、调试模式下运行效果如下,页面表单数据都提交到了Controller中且取的返回值。
以上就是关于获取数值的表单JS 怎么写呢全部的内容,包括:获取数值的表单JS 怎么写呢、node.js解析excel大文件的问题、如何在js中接收后台传来的数组等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)