数组到datalist

时间:2013-08-04 08:41:02

标签: jquery html5

嗯,我在2天前再次来到这里同样的问题,但似乎它仍然无法正常工作。所以任务是传递一个数组,它的字段是CSV数据。我得到了这样的建议:

<datalist id="stelios">

</datalist>
<script type="text/javascript" src="jquery.js"></script>
<script>
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object`

// Loop through the FileList
        for (var i in files) {

            var reader = new FileReader();

            $('#stelios').append('<option value=' + files[i] + '>');
        }
    }

document.getElementById('stelios').addEventListener('change', handleFileSelect, false);
</script>

但似乎我还没有获得数据。任何想法?

1 个答案:

答案 0 :(得分:1)

您正在使用for( var i in files )。这将循环遍历files中的所有值,以及已添加到Object原型中的所有值。 (This is bad)您需要过滤此输出。

下一行包含var reader = new FileReader();。在你的for循环中似乎没有任何对此的引用,所以删除它。

下一行是$('#stelios').append('<option value=' + files[i] + '>');。它创建一个'option'元素,并将其附加到id为stelios的元素。这似乎是正确的。但是,此选项元素的值设置为files[i]没有引号...这很可能会导致混乱。您需要将其更改为:

for( var i in files ) {
  if( files.hasOwnProperty( i )) {
    //Removed unneeded FileReader
    $('#stelios').append('<option value="' + files[i] + '">');
  }
}

我假设你检查过files包含你希望它包含的数据。老实说,我不知道你想用onchange处理程序实现什么。