javascript - 在Vuejs上切换单选按钮后选定的文件消失
问题描述
我试图让用户选择两个单选按钮之一,并根据用户的选择显示input[type='file']或input[type='text']。然后,用户可以选择文件或输入文本。
我可以使用 Vuejs 做到这一点,但是有一个问题。
当用户选择一个文件并来回切换单选按钮时,所选文件就会消失。
这是我的代码:
const vm = new Vue({
el: '#app',
data: {
picked: '',
},
methods: {
isTest1: function () {
return (this.picked === 'test1');
},
isTest2: function () {
return (this.picked === 'test2');
},
}
});
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<div id="app">
<input type="radio" id="test1" name="test" value="test1" v-model="picked"><label for="test1">Test1</label>
<input type="radio" id="test2" name="test" value="test2" v-model="picked"><label for="test2">Test2</label>
<span>{{ picked }}</span>
<div>
<input type="file" v-if="isTest1()">
<input type="text" v-if="isTest2()">
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<script src="js/script.js"></script>
</body>
</html>
我尝试v-model
了input[type='file'],但它不支持 v-model for input[type='file']。
https://github.com/vuejs/Discussion/issues/24
我还尝试v-on:change
了input[type='file']和input[type='radio'],当用户选择或更新文件时,我可以捕捉到事件,但我不确定如何相互交互。
当用户切换单选按钮时,如何保持选定的文件?
谢谢你。
解决方案
我在 GitHub 上问了同样的问题,一位绅士 ( https://github.com/LinusBorg ) 回答了我的问题。
解决方案是替换v-if
为v-show
.
v-if
这是解释和之间区别的参考v-show
。
https://vuejs.org/v2/guide/conditional.html#v-if-vs-v-show
另外,这里是我在 GitHub 上的问题的链接:
推荐阅读
- tensorflow.js - 绘制 x 和 y 张量
- mysql - 如何用某些东西替换占位符以使此 SQL 语句的第一个条件始终为 TRUE?
- asp.net-web-api - 使用 xUnit 和 .Net Core MVC 控制器为 CORS 创建单元测试
- android - 如何将 Flutter (Dart) 与我的 Oracle 服务器连接起来?有人试过吗?
- java - JAXB如何强制解组中的某个顺序
- python - Python:python如何在一条语句中执行多个布尔值?
- bash - Bash tr sed / awk 具有挑战性的脚本
- php - 我需要做什么才能查看数据库项目(foreach 循环)
- javascript - 不要在three.js中的obj模型上加载纹理
- git - git pull --rebase=preserve 总是在重新定位一些东西,即使是在最新的分支上