如何使事件onchange的HTML输入对象不提示文件资源管理器
How to make HTML input object of event onchange not prompt file explorer?
今天我遇到了一个问题,有两种方法可以解决,但我不知道如何正确地实现它们中的任何一种。
我有一个类型为file的HTML元素,它附加了一个onchange事件。这个元素应该处理一个提示,用户在该提示中选择一个图像文件并预览图像。进一步的操作对我的问题来说毫无意义,所以我不会深入讨论。
这就是我的问题所在:如果用户再次点击输入(阅读:第一次加载图像后),会弹出一个confirm
窗口,他决定是否要替换当前图像。
如果确认返回false
,那么我不希望文件资源管理器弹出并允许用户选择一个新文件,这已经发生了。如果确认返回true
,那么我确实希望文件资源管理器弹出。
我曾尝试使用onclick
事件来检查用户是否要替换它,但我仍然无法阻止文件资源管理器弹出。但是,如果用户对确认窗口说"不",我可以阻止图像更改。
这是我的代码:
处理事件的输入:
<label class="labelText"> <input id="uploadImage" type="file"
onchange="PreviewImage();"/> Upload Image
</label>
Javascript函数:
function PreviewImage() {
var newMapURL = "";
if(oldMapURL.length == 0){
oldMapURL = document.getElementById("uploadImage").value;
loadImage(newMapURL);
}
else {
newMapURL = document.getElementById("uploadImage").value;
if (confirm("Are you sure you want to create a new map?")) {
cleanWorkspace();
loadImage(newMapURL);
}
}
}
function loadImage(newMapURL){
var reader = new FileReader();
reader.readAsDataURL(document.getElementById("uploadImage").files[0]);
reader.onload = function(oFREvent) {
document.getElementById("previewImage").src = oFREvent.target.result;
}
}
请注意,我想在纯JavaScript中执行此操作(读作:无jQuery或类似内容)。
编辑:在任何人提到之前,是的,我知道newMapURL
没有被使用。然而
<input id="uploadImage" type="file" onchange="PreviewImage();" onclick="return confirm('Sure?')" />
只有当字段为空时,您才需要使函数show确认。
相关文章:
- 引用对象中的通用值
- 使用 jQuery 工具提示插件(或任何其他方法)显示带有 PHP 对象属性的工具提示
- 如何让此 JavaScript 程序根据提示的输入向对象属性发出警报
- DOJO 工具提示给出“未捕获的类型错误:对象不是函数”
- 将用户输入从 javascript 中的提示转换为数组,然后将其推送到对象上
- 如何正确从另一个对象获取属性?尝试为我的拉斐尔动画创建工具提示
- 将引导工具提示与 SVG 对象一起使用 - 尽管指定了容器,但不显示
- 如何使事件onchange的HTML输入对象不提示文件资源管理器
- 为什么这个工具提示没有'不在IE工作吗?错误:应为对象
- 尝试将来自提示的输入用作函数中的对象值
- 在 data.feature 对象上添加工具提示,就像我们可以对标记所做的那样
- "[对象对象]”;在警报提示中使用时替换变量字符串
- 没有绑定到对象的JQuery工具提示
- jQuery对象中的提示函数不起作用
- 在GWT中动态添加时,在SVG对象上使用标题显示工具提示是行不通的
- 我们来看看ember/ember-data对象的生命周期如何?或者调试Ember.js和Ember-Data的提示/提示
- javascript提示返回类型始终是对象
- 如何从配置对象外部调用Highcharts工具提示格式化程序函数
- 查询 JQueryTools 工具提示的触发器对象变量
- JavaScript提示对象上的事件处理程序