提取动态id为10、11、12;20、21、22、30、31、32....的文本框内容,转成json格式,并将json以字符串形式传送到新的页面显示啊???刚学会这个,始...
提取动态id为10、11、12;20、21、22、30、31、32....的文本框内容,转成json格式,并将json以字符串形式传送到新的页面显示啊???刚学会这个,始终编辑不出来,请各位大神帮帮忙,如果有可能请在一些关键点写点注释,以方便小弟学习!!感谢了
你的id不连续,这个id属性鸡肋了
我想到两种方法
1、
可以取出页面上的所有文本框 历遍dom 或 用jquery $("texterea") 或 querySelectorAll("textarea")
var data={},nodes=querySelectorAll("textarea");//可能所有文本框都是有用的
for(var i=0,l=nodes.length;i<l;i++){
data[nodes[i].id]=nodes[i].value;//如果有不符合条件的文本框 这里也可以过滤掉
};
var json=JSON.stringify(data);//json出来了 传送到新的页面?不知道你是要什么样的
2、
你程序输出页面的时候就把json顺带也输出了吧,前提页面是你写的
<table>
<script>var data={}</script>
<tr>
<script>data[1]="文本框内容1"</script>
<td><textarea id="1">文本框内容1</textarea></td><!--你说id是不是鸡肋-->
</tr>
<tr>
<script>data[99]="文本框内容99"</script>
<td><textarea id="99">文本框内容99</textarea></td>
</tr>
</table>
<script>
var json=JSON.stringify(data);//json出来了 传送到新的页面?不知道你是要什么样的
</script>
网页中用于输入数据的控件有:
textarea,select,input
而input再以type属性区分成:hidden,text,radio,checkbox,button,reset,submit
以上是基础知识,如果你要取的范围内什么类型都有的话那是要多加一些判断的,如果只是一个类型的话那就好办多了,比如,如果都是文本框的话,那直接getElementsByTagName('input')得到对象集合,for循环一下就好了,总之啊,写js是应该要考虑和dom元素的组合的,要如何才方便js取值这是最重要的了
我写有一个提取根据表单获取表单里面所有的输入控件的值的函数,基本思路就是分别用
textarea,select,input三种类型来进行过滤:
getElementsByTagName('input')
getElementsByTagName('textarea')
getElementsByTagName('select')
思路很重要,你还是自己组织好思路吧
循环获取表格每个单元格内容,单元格内的输入文本框id为10、11、12;20、21、22、30、31、32....,而且表格的行会这样动态增加下去,所以我想用动态获取输入框的值,组成json格式,
加载jquery.js
var inputs = $("table input");
var result = [];
for (var i = 0; i < inputs.length; i++)
result[i] = $(inputs[i]).val();
至于 至于组成json 格式的话
你可以使用jquery的插件
https://code.google.com/p/jquery-json/
var thing = { plugin: 'jquery-json', version: 2.4 };
var encoded = $.toJSON( thing );
// '{"plugin":"jquery-json","version":2.4}'
var name = $.evalJSON( encoded ).plugin;
// "jquery-json"
var version = $.evalJSON(encoded).version;
// 2.4
或者是使用json.js
JSON.stringify(result);
或者直接 手动做成json 格式