- that.setData({
- name:'',
- mobile:'',
- content:'',
- })
就是我们可以直接通过赋值的方式让之前的信息清空,但是这个写法在抖音小程序里边无法实现。
翻了半天官方社区,发现这个问题三年前都已经有人像官方反馈过,但是官方始终没有修复,其实也不能算是一个BUG,只是官方没有给我们内置好双向绑定,为了实现可以动态修改input的值,我们需要对input的value做个双向绑定,需要用到bindInput方法
前端:
- <input placeholder="姓名" value='{{name}}' name='contacts' bindinput="nameInput"/>
JS端:
- nameInput(e){
- this.setData({
- name:e.detail.value
- })
- },
这样当我们提交表单之后,就可以setData一下name的值为空即可
- that.setData({
- name:'', //此时就可以对数据进行清空赋值了
- })
这就比较扯淡了,经测试,微信小程序没有这个问题,但是百度小程序也不行,不过百度小程序给了我们另外一种解决方法
- input placeholder="姓名" value='{= name =}' name='contacts' />
value里边写成{= value =},输入框的初始内容。若要动态设置输入框内容,需设置value="{= value =}"(注:若要取键盘输入后的 value 请通过 bindinput 获取)这样也可以帮助清空内容。
虽然抖音小程序可以通过bindInput解决,但是如果说我们的表单input特别多怎么办?难倒所有的都要一个一个的去写bindInput?
文章点评