1、getElementsByName返回数组,getElementById返回的是一个元素。所以当用getElementsByName取值时要用getElementsByName[0]。
2、javascript区分大小写!!!一定不要忘记了!
3、使用getElementsByTagName时要注意标签嵌套是否正确,比如:form嵌套在table里面、tr外面时getElementsByTagName获取不到内容。也有可能其他地方也会出现问题,所以一定要规范!
4、重点了,非IE获取childNodes或者上一个同级节点(previousSibling)、下一个同级节点(nextSibling)时会多出许多#text节点(.nodeType=3),所以需要先判断下获取到的节点才能使用。if(??.nodeType==1) ....
function Validate(theForm) { var tags = theForm.getElementsByTagName("input"); for (var i = 0; i < tags.length; i++) { if (tags[i].value.replace(/(^/s*)|(/s*$)/g, "") == "") { var ddd = tags[i]; var par = ddd.parentNode; var pre = par.previousSibling; if (pre.nodeType != 1) pre = pre.previousSibling; alert("请填写" + pre.innerHTML.replace(":", "") + "!"); ddd.focus(); return false; } if (tags[i].name == "url") { if (reg(tags[i].value, /^http:[A-Za-z0-9]+/.[A-Za-z0-9]+[//=/?%/-&_~`@[/]/':+!]*([^<>/"/"])*$/)) { alert("网站地址格式不正确!"); tags[i].focus(); return false; } } if (tags[i].name == "qq") { if (reg(tags[i].value, /^[1-9]/d{4,9}$/)) { alert("QQ号码格式不正确!"); tags[i].focus(); return false; } } if (tags[i].name == "email") { if (reg(tags[i].value, /^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$/)) { alert("电子邮箱格式不正确!"); tags[i].focus(); return false; } } } alert("提交成功!"); return true; } function reg(s, patrn) { if (patrn.test(s)) return false return true; } 表单提交