• 微信小程序 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方法)
        app.func.req('http://localhost:1111/ffeva/complaint?content=''+this.data.evaContent),get,function(res){
                console.log(res);
                if(res.result==='1'){
                  //跳转到首页
                  app.func.showToast('提交成功','loading',1200);
                }else{
                  app.func.showToast('提交失败','loading',1200);
                }
        });
      }
    })
    

     缺点:

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

  • 相关阅读:
    当安装、卸载件包时,出现依赖问题 error: Failed dependencies解决办法
    保险业务逻辑漏洞新姿势
    Office远程代码执行漏洞(CVE-2017-11882)
    centos7卸载mariadb安装mysql
    Burp时间到期之复活
    weblogic 安装+部署(一)
    nessus 本地扫描(一)
    nessus 家庭版安装教程(windows)
    linux 漏洞列表
    关于MYSQL通过子查询删除重复数据的for update报错问题解决
  • 原文地址:https://www.cnblogs.com/bsyblog/p/6116973.html
Copyright © 2020-2023  润新知