gpt4 book ai didi

javascript - knockout 变更事件函数

转载 作者:行者123 更新时间:2023-12-03 03:21:59 27 4
gpt4 key购买 nike

尝试使用 knockout 更改事件上传多个 csv 文件。最初,更改函数起作用,并且值被写入 View 模型。问题是当尝试上传第二个 csv 文件时, knockout 更改事件不会触发。有没有办法让更改功能在第一次后重新触发?

<input id="uploadFile" type="file" multiple="multiple" data-bind="event: { change: PO.fileUploadChange }"/>

export function fileUploadChange(data, evt): void {
ko.utils.arrayForEach(evt.target.files, function (file) {

var reader = new FileReader();
reader.onload = LoadCSVData;

reader.readAsText(evt.target.files.item(0))
model.quickEntryModel.files.push(evt.target.files.item(0));

var input = document.getElementById('uploadFile');
if (input != null)
document.getElementById('uploadFile').outerHTML = input.outerHTML;
})


}

最佳答案

问题出在最后一行。我不确定你想在那里做什么,但我假设你正在清除输入。您应该将其移到 arrayForEach 循环之外:

export function fileUploadChange(data, evt): void {
ko.utils.arrayForEach(evt.target.files, function (file) {

var reader = new FileReader();
reader.onload = LoadCSVData;

reader.readAsText(evt.target.files.item(0))
model.quickEntryModel.files.push(evt.target.files.item(0));
});

var input = document.getElementById('uploadFile');
if (input != null)
input.value = "";
}

Here's a fiddle

关于javascript - knockout 变更事件函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46531697/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com