javascript - 根据输入类型隐藏/显示=文件值
问题描述
当我通过选择文件按钮选择/取消选择文件时,它工作正常:
$("input[type='submit']").toggle(false);
$("input[type='file']").change(function() {
if ($(this).val() != "") {
$("#btn").toggle();
} else {
$("#btn").toggle();
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="fld" type="file" name="image" id="file">
<input id="btn" type="submit" value="Upload / Edit picture" name="upload_picture" id="upload_picture" class="btn" />
<br>
<br>
<div id="remove_button">Remove</div>
单击选择文件按钮并选择一个文件。将出现上传/编辑图片按钮。现在再次单击选择文件按钮,但不要选择文件并退出小弹出窗口。上传/编辑图片按钮将消失。
在我的情况下,我希望清除 input="file" 值,如果我通过单击<div id="remove_button">Remove</div>
有没有办法做到这一点?
解决方案
您可以做的是将 click 事件侦听器绑定到#remove_button
元素(我建议您应该使用它<button>
而不是 a <div>
)。
在回调中,您可以简单地将文件输入的值设置为空字符串,从而有效地重置该字段。请记住,您将需要.trigger('change')
根据文件输入值手动重新调用显示/隐藏逻辑:
const $submit = $("input[type='submit']");
$submit.hide();
$("#fld").change(function() {
$submit.toggle(!!this.value);
});
$('#remove_button').click(function() {
$('#fld').val('').trigger('change');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="fld" type="file" name="image" id="file">
<input id="btn" type="submit" value="Upload / Edit picture" name="upload_picture" id="upload_picture" class="btn" />
<br>
<br>
<button id="remove_button">Remove</button>
推荐阅读
- javascript - 猫头鹰轮播未在屏幕上显示动态内容
- scala - 如何在结构中的元素内添加元素,该元素是结构中的元素 spark scala中的spark Dataframe
- tableau-api - 在 tableau 中,如何汇总 IDnum 上的数据,但对于每个 IDnum 显示最新版本的名称?
- shellexecute - 如何使用 Windows ShellExecute 从 C 程序中运行程序
- google-cloud-platform - YARN 上 GCP Dataproc 上的自动缩放指标
- javascript - Discord.JS 机器人没有响应
- c - malloc后如何释放空间?
- javascript - 浏览器移动视图中的 Google 地图缩放控件
- asp.net-core - 读取 jpeg 元数据 asp.net core 3.1
- cpu-architecture - 在 gem5 中,使用Ruby 的 MSI 协议无法识别触发器