清空input的type为file时的值

本次需求如下:

<el-form
	ref="form">
	<el-form-item>
		<input 
			ref="selectFile"
			type="file"
			@change="selectFile"
			/>
	</el-form-item>
	<el-form-item>
		<el-button
			@click="saveData"
			>
			提交
		</el-button>
	</el-form-item>
</el-form>
<script>
	methods : {
		saveData () {
			var that = this//这里是为了像服务端发送请求时能够获取到页面元素,因为onload没有this
			//发送http请求
			var xhr = new XMLHttpRequest()
			xhr.onload = function (e) {
				//省略发送请求代码
				//重置方式一
				//选定元素,设置值为空
				//不一定非得refs,也可以用id、类,但要注意返回的是数组还是单个
				that.$refs.selectFile.value = ''//浏览器的安全机制不允许直接用js修改file的value为空字符串以外的值,强制修改会报错
				//重置方式er
				//重置outerHtml
				that.$refs.selectFile.outerHtml = that.$refs.selectFile.outerHtml
				//重置方式三
				//el-form自带的resetFileds
				//这里需要在在el-form-item设置props,否则不生效
				//that.$refs.form.resetFileds()
			}
		}
	}
</script>

总结:清空或重置原理即为选中该元素之后清空该元素值或者设为空,使用组件也需要对原理进行相应了解,现成组件用多了脑子就懒得动了

上一篇:elementUI——el-form表单验证,表单项切换显示,校验错误信息未清除


下一篇:antdVue-form的动态增减