账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于微信小程序文档中input组件示例代码的问题?
    37
    0

    文档链接 https://developers.weixin.qq....

    示例代码中有一个bindReplaceInput方法如下,这段代码的作用是:如果我连续输入2个数字1,11会变成2

    bindReplaceInput: function (e) {
         
        var value = e.detail.value 
        var pos = e.detail.cursor
         
        var left   
        if (pos !== -1) {
          // 光标在中间
          left = e.detail.value.slice(0, pos);
          // 计算光标的位置
          pos = left.replace(/11/g, '2').length; 
        }
     
        // 直接返回对象,可以对输入进行过滤处理,同时可以控制光标的位置
        return {
          value: value.replace(/11/g, '2'),
          cursor: pos
        }
      }

    我的问题是:

    1. 代码中有一段 if(pos !== -1) ,想请问为什么 pos 的值要和 -1 来比较呢?看起来 pos 的值是不会等于负数的嘛
    2. 在 if 的语句段中,如果 left 的值不包含 11 ,left.replace(/11/g,'2').length 由于找不到11,也无法把11替换成2,这个语句为什么不会报错呢

    新手,恳请各位大佬多多指教,感恩!

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 光影小生 普通会员 1楼

      在微信小程序中,input组件主要用于输入控件,可以通过value属性获取输入的值,也可以使用onChange属性来监听输入的改变。以下是一个简单的示例代码:

      html <view class="input"> <input type="text" value="请输入文字"> </view>

      在这个示例中,我们创建了一个input组件,并设置了它的value属性为"请输入文字"。然后,我们在页面的其他位置使用了这个input组件。

      如果你想要在input组件中使用事件监听器,可以这样做:

      html <view class="input"> <input type="text" value="请输入文字" onChange={(e) => console.log(e.target.value)} /> </view>

      在这个示例中,我们在input组件的onChange属性中添加了一个回调函数,这个函数会在input组件的值改变时被调用。在这个回调函数中,我们打印了input组件的value属性,从而可以观察到输入的变化。

      需要注意的是,微信小程序的事件监听器使用的是原生的JavaScript事件监听器,而不是常用的jQuery事件监听器。如果你使用的是jQuery,那么你可能需要使用微信小程序提供的Bridge API来触发事件。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部