这里简单记录两种方法:
一、在input中绑定对象value,在提交成功后的回调中重新设置值为空。个人觉得这种方式适合表单数据比较少。
wxml代码
<form bindsubmit="submitForm">
<input name="title" maxlength="20" value="{{title}}" />
<input name="txt" value="{{txt}}" />
<button formType="submit">提交</button>
<form>
js代码
submitForm: function(e) {
var that = this;
var formData = e.detail.value;
wx.request({
url: apiurl, //你要提交的接口
data: formData,
header: { 'Content-Type': 'application/json' },
success: function (res) {
if (res.data.status == 200) {
wx.showToast({
title: '提交成功',
})
that.setData({
title: '',
txt: ''
})
}
}
})
}
二、通过表单reset重置事件,不过这种方式不能直接使用form表单为我们提供的submit方法中的 e.detail.value提交数据。所有我们要利用input的bindinput或bindblur事件来获取表单数据,将数据setData保存下来。然后就可以用formReset方法将保存的数据传到后台。但是在提交之前要注意的一点,就是要检查下数据是否为空和数据格式是否符合规定。
<form bindreset="formReset">
<input name="title" data-name="title" maxlength="20" bindblur="getData" />
<input name="txt" data-name="txt" bindblur="getData" />
<button formType="reset">提交</button>
</form>
js代码
data:{
cont:{
title: "",
txt: ""
}
},
getData:function(e){
//console.log(e)
var name = e.currentTarget.dataset.name;
this.data.cont[name] = e.detail.value;
this.setData({
cont: this.data.cont
})
console.log(this.data.cont)
},
formReset:function(e){
//在此将保存的表单数据传递给后台
}