欢迎光临,了解微信小程序开发,就上易用通!

textarea 简易解决方案

发布:2018-01-25 12:05浏览: 来源:网络 作者:tianshu

微信小程序中textarea没有bindchange事件,所以无法在输入时给变量赋值。
 
虽然可以使用bindblur事件,但是绑定bindblur事件,如果再点击按钮,则先执行完按钮事件后,再去执行bindblur事件,所以在js文件取不到输入值,
 
解决方法:结合from表单,textarea文本框输入后,再去点击提交按钮,这时会先执行textarea事件(获取文本框输入内容),再去执行数据提交,这样问题就解决了
 
wxml文件代码:
  1. <font size="3"><form bindsubmit="evaSubmit">
  2.       <textarea name="evaContent" maxlength="500" value="{{evaContent}}" class="weui-textarea" placeholder="填写内容(12-500字)"bindblur="charChange" />          
  3.       <button formType="submit" disabled="{{subdisabled}}" class="weui-btn mini-btn" type="primary" size="mini">提交</button>
  4. </form></font>
js文件代码:
  1. var app = getApp();
  2. Page({
  3.   data:{
  4.      evaContent   : ''
  5.   },
  6.   onLoad:function(){
  7.   },
  8.   onReady:function(){
  9.     // 页面渲染完成
  10.   },
  11.   onShow:function(){
  12.     // 页面显示
  13.   },
  14.   onHide:function(){
  15.     // 页面隐藏
  16.   },
  17.   onUnload:function(){
  18.     // 页面关闭
  19.   },
  20.   //事件
  21.   textBlur: function(e){
  22.      if(e.detail&&e.detail.value.length>0){
  23.        if(e.detail.value.length<12||e.detail.value.length>500){
  24.           //app.func.showToast('内容为12-500个字符','loading',1200);
  25.        }else{
  26.           this.setData({
  27.              evaContent : e.detail.value
  28.           });
  29.        }
  30.      }else{
  31.         this.setData({
  32.            evaContent : ''
  33.         });
  34.         evaData.evaContent = '';
  35.         app.func.showToast('请输入投诉内容','loading',1200);
  36.      }
  37.   },
  38.   //提交事件
  39.   evaSubmit:function(eee){   
  40.     var that = this;
  41.     //提交(自定义的get方法)
  42.     app.func.req('https://localhost:1111/ffeva/complaint?content=''+this.data.evaContent),get,function(res){
  43.             console.log(res);
  44.             if(res.result==='1'){
  45.               //跳转到首页
  46.               app.func.showToast('提交成功','loading',1200);
  47.             }else{
  48.               app.func.showToast('提交失败','loading',1200);
  49.             }
  50.     });
  51.   }
  52. })



缺点:
这样操作后,功能就有缺陷。例如,无法即时获取用户文本框输入字符个数,如果有更好的解决方法,希望能学习一下!




免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。