⼩程序textarea简易解决⽅案
⼩程序中textarea没有bindchange事件,所以⽆法在输⼊时给变量赋值。
虽然可以使⽤bindblur事件,但是绑定bindblur事件,如果再点击按钮,则先执⾏完按钮事件后,再去执⾏bindblur事件,所以在js⽂件取不到输⼊值,
解决⽅法:结合from表单,textarea⽂本框输⼊后,再去点击提交按钮,这时会先执⾏textarea事件(获取⽂本框输⼊内容),再去执⾏数据提交,这样问题就解决了
wxml⽂件代码:
<form bindsubmit="evaSubmit">
<textarea name="evaContent" maxlength="500" value="{{evaContent}}" class="weui-textarea" placeholder="填写内容(12-500字)"bindblur="charChange"/> <button formType="submit" disabled="{{subdisabled}}" class="weui-btn mini-btn" type="primary" size="mini">提交</button>
</form>
js⽂件代码:
var app = getApp();
Page({
data:{
evaContent  : ''
},
onLoad:function(){
},
onReady:function(){
// 页⾯渲染完成
},
onShow:function(){
/
/ 页⾯显⽰
},
onHide:function(){
// 页⾯隐藏
},
onUnload:function(){
// 页⾯关闭
},
//事件
textBlur: function(e){
if(e.detail&&e.detail.value.length>0){
if(e.detail.value.length<12||e.detail.value.length>500){
//app.func.showToast('内容为12-500个字符','loading',1200);
}else{
this.setData({
evaContent : e.detail.value
});
}
}else{
this.setData({
evaContent : ''
});
evaData.evaContent = '';
app.func.showToast('请输⼊投诉内容','loading',1200);
}
},
//提交事件
evaSubmit:function(eee){
var that = this;
//提交(⾃定义的get⽅法)
q('localhost:1111/ffeva/complaint?content=''+this.data.evaContent),get,function(res){
console.log(res);
sult==='1'){
/
/跳转到⾸页
app.func.showToast('提交成功','loading',1200);
}else{
app.func.showToast('提交失败','loading',1200);
}
});
}
})
缺点:
这样操作后,功能就有缺陷。例如,⽆法即时获取⽤户⽂本框输⼊字符个数,如果有更好的解决⽅法,希望能学习⼀下!blur事件

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。