javascript - 我可以使用 val() 插入或编辑文件输入吗?
问题描述
我正在使用 jQuery 为管理面板制作 CRUD。我正在使用以下表格将“视频”添加到列表中:
因此,当我提交表单时,所有字段都被推送到一个名为videos的数组中,并且表单被清除。
当我尝试编辑特定视频并尝试将当前视频的所有值插入表单的字段时,问题就开始了。我正在这样做:
$('#video-title').val(video.videoTitle);
$('#video-segment').val(video.videoSegment);
$('#video-thumbnail').val(video.videoThumbnail);
$('#datepicker3').val(video.videoDate);
$('#video-description').val(video.videoDescription);
$('#bright-id').val(video.videoBrightCoveId);
一切正常,但在视频缩略图(为该特定视频上传的图像)给我这个错误:
jquery.min.js:2 Uncaught DOMException: Failed to set the 'value' property on 'HTMLInputElement': This input element accepts a filename, which may only be programmatically set to the empty string.
at HTMLInputElement.<anonymous> (https://localhost:5001/lib/jquery/jquery.min.js:2:68568)
at Function.each (https://localhost:5001/lib/jquery/jquery.min.js:2:2777)
at k.fn.init.each (https://localhost:5001/lib/jquery/jquery.min.js:2:1419)
at k.fn.init.val (https://localhost:5001/lib/jquery/jquery.min.js:2:68263)
at HTMLButtonElement.<anonymous> (https://localhost:5001/admin/events/create:1239:35)
at HTMLTableSectionElement.dispatch (https://localhost:5001/lib/jquery/jquery.min.js:2:42571)
at HTMLTableSectionElement.v.handle (https://localhost:5001/lib/jquery/jquery.min.js:2:40572)
我的问题是:有一种方法可以编辑缩略图字段吗?还是我这样做的方式不可能?.
解决方案
您可以使用DataTransfer()设置输入类型文件的值。
例如:
var tst = new DataTransfer();
tst.items.add(new File(['test'], video.videoThumbnail));
video_thumbnail.files = tst.files;
var tst = new DataTransfer();
tst.items.add(new File(['test'], 'yourimage.jpg'));
video_thumbnail.files = tst.files;
<input type="file" id='video_thumbnail'>
推荐阅读
- r - 将向量拆分为 n 个列表对象 (R)
- c# - 如何实例化一个 Lazy
使用运行时类型信息和只返回形状的函数? - javascript - 从输入元素保存文件列表数组并访问文件
- javascript - 如何使偶数随机化或随机化?
- ansible - Ansible UFW:并行循环使执行更快
- java - java和继承构造函数
- php - 在 Apache 服务器上找不到 PHP 文件
- c++ - 如何用随机字符填充二维数组?在 C++ 中使用类
- java - OnActivityResult 保存以前的值
- windows - 如何使用 powershell 安装 Opera 网络浏览器系统级别(适用于所有用户)