小程序输入框设置maxlength时,拼音也会被限制


  <input type="text"  maxlength="10"  confirm-type="done" model:value="{{bookName}}" placeholder="请输入"></input>


如上,我限制输入框最长可输入5位字符,在微信开发工具调试是没问题的,在真机上,当我输入中文时,拼音也被限制了,像我习惯一次性打完一句话或者四五个字,结果拼音也被限制只能输入5个以内,这就很难受

应该是输入中文时,拼音会暂时出现在输入框内,然后就被误判成是输入框内的内容了。

我在微信开发社区也发现了有很多人都遇到这个问题,但是技术人员都没有相关的正面回复

bindchange

后来有位大佬让我试一下change事件,
最终利用给输入框绑定change事件来手动完成长度的限制,从效果上来看还是不错的

          <input type="text"  bindchange="chan"  confirm-type="done" model:value="{{bookName}}" placeholder="请输入"></input>

chan (e) {
    let value = e.detail.value
    if (value.length < 11) return
    // 在长度超过十位时,对字符串进行截取,并重新赋值
    value = value.substr(0, 10)
    this.setData({
      bookName: value
    })
  }

手动改变输入框绑定的值并不会再次触发change事件,亲测有效,希望能帮到大家

不要停止思考,但也不要钻死胡同,诸位,共勉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值