0

我想验证我的表格有

<input type="file" id="file[]">

我只想在文件上传时提交表单,否则会弹出错误消息。问题是我已经制作了上传多个文件的代码。所以 ID 属性<input type="file">array(file[])

我试过了

  1. document.getElementById('file').value
  2. document.getElementById('file[]').value
  3. document.getElementById('file[3]').value

但每次它都不起作用。我已经通过firebug检查了它,它给出了错误

 document.getElementById(...) // is null.
4

3 回答 3

1

您的问题很可能是您的 ID 中不能有方括号 ( [])。

请参阅HTML 中 id 属性的有效值是什么?了解更多信息。

于 2013-01-29T17:51:46.057 回答
1

您不能创建具有相同 ID 的多个元素。而不是 id 使用 class='fileInput' 和使用

var fileArr = document.getElementByClassName("fileInput") ;

然后循环遍历数组并检查所有文件输入是否有效..

于 2013-01-29T17:54:21.553 回答
0

您必须确保 ID 有效且唯一。这似乎是您当前的问题。

但是,应该使用 ID 属性来区分元素与其当前组之外的元素。尝试处理 ID 值中的某种模式来构建组可能是不可读的,并且更有可能导致意外错误(即:多个元素的相同 ID 或计算错误的元素 ID)。

相反,如果你想创建一组多个 DOM 元素,你可以考虑使用classjQuery 容易获取/迭代的属性。

<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
});
于 2013-01-29T18:05:56.030 回答