我想验证我的表单
<input type="file" id="file[]">
我只想在上传文件时提交表单,否则会弹出错误信息弹出窗口。
问题是,我已经使代码上传了多个文件。因此,<input type="file">
的ID属性为array(file[])
。
我试过了
document.getElementById('file').value
document.getElementById('file[]').value
document.getElementById('file[3]').value
但每次它都不起作用。 我通过firebug检查了它,它给出了错误
document.getElementById(...) // is null.
答案 0 :(得分:1)
您的问题很可能是您的ID中没有方括号([]
)。
有关详细信息,请参阅What are valid values for the id attribute in HTML?。
答案 1 :(得分:1)
您无法创建具有相同ID的多个元素。而不是id使用class ='fileInput'和 使用
var fileArr = document.getElementByClassName(“fileInput”);
然后遍历数组并检查所有文件输入是否有效..
答案 2 :(得分:0)
您必须确保该ID有效且唯一。这似乎是你目前的问题。
但是,ID属性应该用于区分元素和当前组的外部。尝试处理ID值中的某种模式以构建组可能是不可读的,并且更可能导致意外错误(即:多个元素的相同ID或计算错误的元素ID)。
相反,如果你想创建一个包含多个DOM元素的组,你可以考虑使用j class
这个易于获取/迭代的属性。
<input name="fname" type="text" class="grp-1" />
<input name="lname" type="text" class="grp-1" />
<input name="file" type="file" class="grp-1" />
通过这种方法,您可以:
var myGroup = $('.grp-1');
var firstInput = myGroup.eq(0);
var secondInput = myGroup.eq(1);
或
myGroup.foreach(function(index){
var element = $(this);
// whatever needs to be validated with the current element
});