本次需求如下:
<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>
总结:清空或重置原理即为选中该元素之后清空该元素值或者设为空,使用组件也需要对原理进行相应了解,现成组件用多了脑子就懒得动了