我有这个javascript。在我的表单中肯定有2个输入标签,名称为“附件”:
<input name="attachments" type="hidden" value="test.doc">
<input name="attachments" type="hidden" value="test2.doc">
这是我的javascript。它说我的浏览器中未定义变量附件:
var attachments = document.getElementsByName('attachments');
var picCnt = 0;
var resumeCnt = 0;
if(document.getElementsByName('attachments').length >0){
for(var i = 0; i <= attachments.length; i++){
if(attachments[i].value.substring(attachments[i].value.length-4, attachments[i].value.length) == ".doc" ||
attachments[i].value.substring(attachments[i].value.length-5, attachments[i].value.length) == ".docx" ||
attachments[i].value.substring(attachments[i].value.length-4, attachments[i].value.length) == ".pdf" ){
resumeCnt += 1;
}
}
}
这是不正确的? TIA!
答案 0 :(得分:3)
以下行是undefined
问题:
for(var i = 0; i <= attachments.length; i++){
应该是:
for(var i = 0; i < attachments.length; i++){
报告attachments[attachments.length]
最有可能是undefined
,因为它始终是。{/ p>
只是一个建议
我发现上面的内容相当难以阅读,使用单数变量而不是每次重复相同的数组访问都更为理想。
var attachments = document.getElementsByName('attachments'),
picCnt = 0;
resumeCnt = 0;
i, val
;
if(attachments.length >0){
for(i = 0; i <= attachments.length; i++){
val = attachments[i].value;
if(val.substring(val.length-4, val.length) == ".doc" ||
val.substring(val.length-5, val.length) == ".docx" ||
val.substring(val.length-4, val.length) == ".pdf" ){
resumeCnt += 1;
}
}
}