【发布时间】:2018-03-09 20:00:01
【问题描述】:
我创建了一个输入类型 = 文件的表单。从此表单提交信息后,进入本地存储并添加到某个块。我可以添加文本,但不能添加图像,不是文件名,而是真实图像。
所以结果应该看起来像 div,里面有一些文本信息和来自用户 pc 的真实图像
let outputs = $('.output-text');
let idMask = "outputs_";
function showArticle(){
let isLen = localStorage.length;
if(isLen > 0){
for(let i = 0; i < isLen; i++){
let key = localStorage.key(i);
if(key.indexOf(idMask) == 0){
$('<div></div>').addClass('student-card')
.attr('data-itemId', key)
.html(localStorage.getItem(key))
.prependTo(outputs);
}
}
}
}
showArticle();
$(".load-form").on('submit', function(event) {
event.preventDefault();
let groupName = $(this).find('#select-group option:selected').text();
let pupilName = $(this).find('#select-pupil option:selected').text();
let message = $(this).find('#textarea').val();
let inputImg = $(this).find('#file-name').text();
let addArticle = '<div class = "student-card__group">Group: <span class = "group-name_js">'+groupName'+
'</span></div><div class = "student-carg__img">'+inputImg+'</div>';
let newId = 0;
outputs.children().each(function(index, el){
let oldId = $(el).attr('data-itemId').slice(8);
if(oldId > newId)
newId = oldId;
})
newId++;
localStorage.setItem(idMask+newId, addArticle);
$('<div></div>').addClass('student-card')
.attr('data-itemId', idMask+newId)
.html(addArticle).prependTo(outputs);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class = "load-form" method="get" enctype="multipart/form-data">
<div class = "load-form-item choose-group">
<select id = "select-group">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
</div>
<div class = "load-form-item">
<input type = "file">
</div>
<div class = "load-form-item load-form-item__submit">
<input type = "submit">
</div>
</form>
<div></div>
【问题讨论】:
-
为了为您的具体案例提供有意义的答案,我们需要知道您的主机类型。是 .NET、PHP、Ruby 等吗?图像很可能需要在服务器端读取并发送回浏览器进行本地存储。
-
没有服务器,只有 html
-
您将它托管在某个地方,对吧,或者您只是在本地使用 file:// url 运行它?您应该检查您的托管环境以确定提供哪种类型的服务器端支持。
-
我在本地和本地服务器上使用php作为后端运行它,但它应该在没有后端的html中工作
标签: javascript jquery