uni-app使用from表单提交后清空input输入内容的方法

使用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输入内容的正确方法了吧

0 个评论

要回复文章请先登录注册