- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 2 种图像输入类型的表单(来自文件和来自 URL)。我需要使用上次更改的输入中的图像。为此,我创建了一个额外的不可见输入字段“imgTempURL”,当输入字段之一更改时,它会填充图像的 url(或 base64 字符串,如果它是文件)。
例如,如果我将文件上传到文件输入,“imgTempURL”值将更改为 base64 字符串。如果我填写 URL 字段值,“imgTempURL”值将更改为 URL 字段值。然后我按下一个按钮,“imgTempURL”值被发送到服务器。这就是它的工作原理。
问题是“imgTempURL”未填充新的 base64 字符串,如果我在填写 URL 输入字段后尝试上传文件 - 它仍保留相同的旧 URL 链接值。
这是 HTML 部分:
<input type="text" id="imgTempUrl"/> <--made it visible to see its value-->
<cfform id="form">
Use file
<input type="file" id="imgUp" accept=".jpg">
or URL
<input type="text" name="url" id="url" size="20"
onkeyup="document.getElementById('imgTempUrl').value=this.value;">
<input type="Submit" class="" value="Generate" id="generate">
</cfform>
我在这个函数中得到了base64字符串:
$(function(){
$('#imgUp').change(function(){
imgUp = document.getElementById('imgUp');
if(imgUp.files && imgUp.files[0]){
var reader = new FileReader();
reader.onload = function(e){
$('#imgTempUrl')
.attr('value', e.target.result);
};
reader.readAsDataURL(imgUp.files[0]);
}
});
});
如何解决这个问题?关于使用文件输入及其行为,我应该了解什么吗?
提前谢谢您!
最佳答案
$('#imgTempUrl').attr('value',e.target.result);
这不是设置输入文本值的方法。您应该使用 .val()
方法来设置值。
$(function(){
$('#imgUp').change(function(){
imgUp = document.getElementById('imgUp');
if(imgUp.files && imgUp.files[0]){
var reader = new FileReader();
reader.onload = function(e){
$('#imgTempUrl').val(e.target.result);
};
reader.readAsDataURL(imgUp.files[0]);
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="imgTempUrl"/> <--made it visible to see its value--><br>
<cfform id="form">
Use file
<input type="file" id="imgUp" accept=".jpg"> <br>
or URL
<input type="text" name="url" id="url" size="20"
onkeyup="document.getElementById('imgTempUrl').value=this.value;">
<input type="Submit" class="" value="Generate" id="generate">
</cfform>
关于javascript - 如何使不同类型的输入(文件、文本)协同工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38914318/
我想插入 备注 关于要在我的 latex 文档的特定位置进行的修复 也许有一个 列表的“待办事项/修复我” 你怎么处理这个? 似乎一种方法是使用 fixme 包,但我无法使其工作。 有人在用吗? 最佳
错误:无法创建表。我已经创建了一个数据库,并且已经提供了所有特权。但仍然无法登录协作模块。我受够了,但我不想放弃。我已经尝试了所有可能的方法,但都行不通。 Stackoverflow 是我所知道的最好
我是一名优秀的程序员,十分优秀!