作者:mobiledu2502886077 | 来源:互联网 | 2017-05-11 01:14
这篇文章主要介绍了微信小程序textarea详解及简单使用方法的相关资料,这里附有实现实例代码,及解决textarea没有bindchange事件,无法在输入时给变量赋值的方法,需要的朋友可以参考下
微信小程序 textarea 简易解决方案
微信小程序中textarea没有bindchange事件,所以无法在输入时给变量赋值。
虽然可以使用bindblur事件,但是绑定bindblur事件,如果再点击按钮,则先执行完按钮事件后,再去执行bindblur事件,所以在js文件取不到输入值,
解决方法:结合from表单,textarea文本框输入后,再去点击提交按钮,这时会先执行textarea事件(获取文本框输入内容),再去执行数据提交,这样问题就解决了
wxml文件代码:
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(&#39;内容为12-500个字符&#39;,&#39;loading&#39;,1200);
}else{
this.setData({
evaContent : e.detail.value
});
}
}else{
this.setData({
evaContent : &#39;&#39;
});
evaData.evaCOntent= &#39;&#39;;
app.func.showToast(&#39;请输入投诉内容&#39;,&#39;loading&#39;,1200);
}
},
//提交事件
evaSubmit:function(eee){
var that = this;
//提交(自定义的get方法)
app.func.req(&#39;http://localhost:1111/ffeva/complaint?cOntent=&#39;&#39;+this.data.evaContent),get,function(res){
console.log(res);
if(res.result===&#39;1&#39;){
//跳转到首页
app.func.showToast(&#39;提交成功&#39;,&#39;loading&#39;,1200);
}else{
app.func.showToast(&#39;提交失败&#39;,&#39;loading&#39;,1200);
}
});
}
})
缺点:
这样操作后,功能就有缺陷。例如,无法即时获取用户文本框输入字符个数,如果有更好的解决方法,希望能学习一下!
更多微信小程序 textarea 详解及简单使用方法相关文章请关注PHP中文网!