document.getElementById 测试可用,当然获取 form 滴代码要写在 form 后面!
测试环境如下:
Mozilla/5.0 (Windows; U; Windows NT 5.2; zh-CN; rv:1.9.0.4) Gecko/2008102920
Firefox/3.0.4<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
</head> <body>
<form id="form1" name="form1" method="post" action='' onsubmit="_post(this);return false;">
<input name="Title" type="text" id="Title" />
<input name="Title2" type="text" id="Title" />
<input type="submit" name="button" value="提交" />
</form> <form id="form2" name="form1" method="post" action='' onsubmit="_post(this);return false;">
<input name="Title0" type="text" id="Title" />
<input name="Title02" type="text" id="Title" />
<input name="Title03" type="text" id="Title" />
<input name="Title04" type="text" id="Title" />
<input type="submit" name="button" value="提交" />
</form>
</body>
<script type="text/javascript">
<!--
var collInput = document.getElementById("form1").getElementsByTagName("input");
alert(collInput.length);
collInput = document.getElementById("form2").getElementsByTagName("input");
alert(collInput.length);
//-->
</script>
</html>
测试环境如下:
Mozilla/5.0 (Windows; U; Windows NT 5.2; zh-CN; rv:1.9.0.4) Gecko/2008102920
Firefox/3.0.4<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
</head> <body>
<form id="form1" name="form1" method="post" action='' onsubmit="_post(this);return false;">
<input name="Title" type="text" id="Title" />
<input name="Title2" type="text" id="Title" />
<input type="submit" name="button" value="提交" />
</form> <form id="form2" name="form1" method="post" action='' onsubmit="_post(this);return false;">
<input name="Title0" type="text" id="Title" />
<input name="Title02" type="text" id="Title" />
<input name="Title03" type="text" id="Title" />
<input name="Title04" type="text" id="Title" />
<input type="submit" name="button" value="提交" />
</form>
</body>
<script type="text/javascript">
<!--
var collInput = document.getElementById("form1").getElementsByTagName("input");
alert(collInput.length);
collInput = document.getElementById("form2").getElementsByTagName("input");
alert(collInput.length);
//-->
</script>
</html>
解决方案 »
- 关于按钮点击以后不能重复点击
- 执行jquery的animate,然后恢复到执行前的状态
- jquery的$.post问题
- 关于JS和VS2010只能感知的问题
- JS在IE显示正常,在火狐里面显示有问题请高手帮忙看看
- 来个高难度的仿51job的智能类别(我截图了)能做的出来不?
- 请问,javascript 中的 bookmarklet 是什么?
- parseFloat在js里面怎么用??
- Windows NT 脚本命令 和 Windows 宿主脚本 不是一回事情吧??哪里与WindowsNT 脚本命令的学习手册之类的下载啊?
- 怎样才能让excel不以科学计数法显示单元格内容?
- JQuery站点IE7浏览,有问题的站出来!
- 列表框的问题??? ???
<script>
function test(){
var ins=document.all.form1.getElementsByTagName("INPUT");
alert(ins.length);
var ins2=document.all.form2.getElementsByTagName("INPUT");
alert("--:"+ins2.length);
}
</script>
<form id="form1" name="form1" method="post" action='' onsubmit="_post(this);return false;">
<input name="Title" type="text" id="Title" />
<input name="Title2" type="text" id="Title" />
<input name="Title3" type="text" id="Title" />
<input name="Title4" type="text" id="Title" />
<input type="submit" name="button" value="提交" />
</form> <form id="form2" name="form2" method="post" action='' onsubmit="_post(this);return false;">
<input name="Title0" type="text" id="Title" />
<input name="Title02" type="text" id="Title" />
<input name="Title03" type="text" id="Title" />
<input name="Title04" type="text" id="Title" />
<input type="submit" name="button" value="提交" />
</form>
<input type="button" value="aa" onclick="test()">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<form id="form1" name="form1" method="post" action='' onsubmit="_post(this);return false;">
<input name="Title" type="text" id="Title" />
<input name="Title2" type="text" id="Title02" />
<input name="Title3" type="text" id="Title03" />
<input name="Title4" type="text" id="Title04" />
<input type="submit" name="button" value="提交" />
</form> <form id="form2" name="form1" method="post" action='' onsubmit="_post(this);return false;">>
<input name="Title0" type="text" id="Title0" />
<input name="Title02" type="text" id="Title2" />
<input name="Title03" type="text" id="Title3" />
<input name="Title04" type="text" id="Title4" />
<input type="submit" name="button" value="提交" />
</form>
</body><script type="text/javascript" > var rs = document.getElementById("form1").getElementsByTagName("INPUT");
alert(rs.length);
</script>
</html>
for(var i=0;i<rs.length;i++)
{
go……
}
去他的哦。很简单的
以前写的没有错,但一直取不到,原来是这么回事。。想不通。。<script type="text/javascript" >
function _post(obj){
var rs = obj.getElementsByTagName("input");
alert(rs.length);
}
</script>
var c = form1..childNodes;
for(var i = 0; i < c.length; i++){
if(c[i].tagName == "input"){ //取得input元素,也记不清tagName返回的是小写还是大写了
//在这里写你的处理代码
}
}
{
var puts = document.getElementById(obj.id).getElementsByTagName("input");
var s = "";
for(var i=0;i<puts.length;i++){
s += "&"+ puts[i].name +"="+ escape(puts[i].value);
}
return s.substr(1);
}
getElementsByTagName MethodRetrieves a collection of objects based on the specified element name.SyntaxcollObjects = object.getElementsByTagName(sTagName)
ParameterssTagName Required. String that specifies the name of an element. Return ValueReturns a collection of objects with the specified element name.Applies ToA, ACRONYM, ADDRESS, APPLET, AREA, B, BASE, BASEFONT, BDO, BGSOUND, BIG, BLOCKQUOTE, BODY, BR, BUTTON, CAPTION, CENTER, CITE, CODE, COL, COLGROUP, CUSTOM, DD, DEL, DFN, DIR, DIV, DL, document, DT, EM, EMBED, FIELDSET, FONT, FORM, FRAME, FRAMESET, HEAD, hn, HR, HTML, I, IFRAME, IMG, INS, KBD, LABEL, LEGEND, LI, LINK, LISTING, MAP, MARQUEE, MENU, OL, P, PLAINTEXT, PRE, Q, S, SAMP, SCRIPT, SELECT, SMALL, SPAN, STRIKE, STRONG, SUB, SUP, TABLE, TBODY, TD, TEXTAREA, TFOOT, TH, THEAD, TITLE, TR, TT, U, UL, VAR, XMP
2我以前写的一个函数,/**
* 函数jsonForm 将表单对象所包含的控件的内容转换成json对象。
* 参数1 为表单对象或表单对象的id;
* 参数2 为表单对象中要略过的控件,可为“控件name属性”,“控件元素名”,控件type
*/
function jsonForm(O,skip){
if(!O)return;
var O=typeof(O)=='string'?$(O):O, skip=ext$({},skip), o={};
if(typeof(O)=='object'){
if(!O.nodeName){return O;}
if(O.nodeName=='FORM'){
var an=(typeof(skip.name)=='string')?skip.name.toLowerCase().split(','):isArray(skip.name)?skip.name:[],
ae=(typeof(skip.elem)=='string')?skip.elem.toUpperCase().split(','):isArray(skip.elem)?skip.elem:[],
at=(typeof(skip.type)=='string')?skip.type.toLowerCase().split(','):isArray(skip.type)?skip.type:[];
for(var x=0,L=O.length;x<L;x++){
if(!inArray(O[x].nodeName,ae)&& !O[x].disabled &&O[x].name&&O[x].name!=''&&!inArray(O[x].name.toLowerCase(),an)){
switch(O[x].nodeName){
case 'INPUT':
if(!inArray(O[x].type,at)){
switch(O[x].type){
case 'text':
case 'hidden':
case 'password':
if(/%5B%5D$|\[\]$/i.test(O[x].name)){
var N=O[x].name.replace(/%5B%5D$|\[\]$/i,'');
if(o.hasOwnProperty(N)){
o[N].push(O[x].value);
}else{
o[N]=[O[x].value];
}
}else{
o[O[x].name]=O[x].value;
}
break;
case 'radio':
case 'checkbox':
if(O[x].checked){
if(/%5B%5D$|\[\]$/i.test(O[x].name)){
var N=O[x].name.replace(/%5B%5D$|\[\]$/i,'');
if(o.hasOwnProperty(N))
o[N].push(O[x].value);
else
o[N]=[O[x].value];
}
else
o[O[x].name]=O[x].value;
}
break;
}
}
break;
case 'TEXTAREA':
if(/%5B%5D$|\[\]$/i.test(O[x].name))
o[O[x].name.replace(/%5B%5D$|\[\]$/i,'')]=[O[x].value];
else
o[O[x].name]=O[x].value;
break;
case 'SELECT':
for(var z=0,J=O[x].length;z<J;z++){
var Oz=O[x].options[z];
if(Oz.selected){
if(/%5B%5D$|\[\]$/i.test(O[x].name)){
var N=O[x].name.replace(/%5B%5D$|\[\]$/i,'');
if(o.hasOwnProperty(N))
o[N].push(Oz.value);
else
o[N]=[Oz.value];
}
else
o[O[x].name]=Oz.value;
}
}
break;
}
}
}
}
}
return o;
}再用另外一个函数将json对象uri化。function uriJson(o){
if(!o||'object'!==typeof(o))return;
var a=[],A=arguments;
for(var z in o){
if(null===o[z]){
a.push(encodeURIComponent(z) +'=');
continue;
}
if(isArray(o[z])){
for(var x=0,L=o[z].length;x<L;x++){
if(typeof(o[z][x])=='object'){
a.push(A.callee(o[z][x]));
}else{
a.push(encodeURIComponent(z +'[]') +'='+ encodeURIComponent(o[z][x]));
}
}
}else if(o[z]&&typeof(o[z])=='object'){
a.push(A.callee(o[z]));
}else if(typeof(o[z])=='function'){
continue;
}else{
a.push(encodeURIComponent(z) +'='+ encodeURIComponent(o[z]));
}
}
return a.join('&').replace(/%20/g, '+');
}里面还用到另外几个函数function inArray(v,a,s){
if(!isArray(a)||a.length==0)return false;
var eq=(function(){
if(s)return function(x,y){return x===y;};
else return function(x,y){return x==y;};
})();
if(typeof(v)=='string'||typeof(v)=='number'){
for(var z=0,L=a.length;z<L;z++){
if(eq(a[z],v))return true;
}
}
return false;
}
function isArray(a){
if(!a)return false;
return (typeof a != "undefined" ? a.constructor == Array : typeof a.length != "undefined");
}
function ext$(o,O,s){
if('object'!=typeof(o)||'object'!=typeof(O)||!o||!O)return o;
if(s){
for(var z in o){
if(O.hasOwnProperty(z))
o[z]=O[z];
}
}else{
for(var z in O){
o[z]=O[z];
}
}
return o;
}就你的form1var foo1=uriJson(jsonForm('form1',{elem:['select','textarea']}));lz测试一下