使用uni-app做小程序开发的时候,使用到from表单提交,但是提交后input输入的内容却没有办法清空。
<form @submit="FormSubmit">
<input confirm-type="go"></input>
<button form-type="submit" class="">添加</button>
</form>
搜索了一下后发现大家在微信小程序原生开发的方案都是给input的value设置一个默认值inputName,然后在提交成功后,把inputName通过this.setData 设置为空
//直接将input值设置空
this.setData({
inputName: ''
})
但是在uniapp上这样做,并不会改变input输入的内容,尝试改用了以下方法
<template>
<view>
<form @submit="FormSubmit">
<input :value="inputName" confirm-type="go"></input>
<button form-type="submit" class="">添加</button>
</form>
<view>
<template>
<script>
data() {
return {
inputName:''
}
},
methods: {
FormSubmit:(){
this.inputName = ''
}
}
</script>
可这样的方法也不会清空input输入内容。网上也有说通过设置延迟的方法能清空input输入的内容,但是测试后,发现依然不能清空。
setTimeout(() => {
this.inputName = ''
}, 10)
后来把inputName设置成null就可以做到在from提交成功后,清空input输入的内容
this.inputName = null
但是又发现这样的做法,仅仅在第一次提交时会清空input输入的内容而已,再次提交操作并不会清空input输入的内容了。
最后想到一个方法,把value属性换成了v-model双向绑定就成功了
<template>
<view>
<form @submit="FormSubmit">
<input v-model="inputName" confirm-type="go"></input>
<button form-type="submit" class="">添加</button>
</form>
<view>
<template>
<script>
data() {
return {
inputName:''
}
},
methods: {
FormSubmit:(){
this.inputName = ''
}
}
</script>
所以这个应该是在uni-app上开发微信小程序,使用from表单提交后清空input输入内容的正确方法了吧