Uniapp input的maxlength问题
前情
uni-app是我很喜欢的跨平台框架,它能开发小程序,H5,APP(安卓/iOS),对前端开发很友好,自带的IDE让开发体验也很棒,公司项目就是主推uni-app。
坑位
最近在做一个input字数限制的需求,但是对于如果你输入有emoji表情的时候会出现在APP端和h5端表现不一致,app端表情算一个长度,而H5端则算2个。
Why?
猜测是uniapp的兼容BUG,app端和h5端未处理成一致
解决方案
对于有emoji的场景暂时放弃使用 maxlength,通过使用v-model+watch+lodash来实现,lodash字符串转数组的时候会把表情当一位处理,于是有如下代码。
template代码如下:
...
<input class="uni-input" placeholder="请设置群名称" v-model="newName" />
...
- script中代码如下,对于为什么要延时100毫秒见的另一篇博文https://www.cnblogs.com/xwwin/p/16696448.html:
import { toArray } from 'lodash';
...
watch: {
newName(newVal) {
let nameArr = toArray(newVal);
if (nameArr.length <= 28) {
return;
}
nameArr = nameArr.slice(0, 28);
setTimeout(() => {
this.newName = nameArr.join('');
}, 100);
}
}
...
至此完成了input字数限制28个的需求,如果你有更好的方式,期待你的分享。
Uniapp input的maxlength问题的更多相关文章
- html input size maxlength
最近做项目用到input的size和maxlength属性,以前只顾用没有用心去看看这2个标签的区别,今天周末baidu了一下,有所理解.特记录于此! <p>Name: <inp ...
- HTML中input标签maxlength属性的妙处
HTML中的input标签可是很常用的. HTML本身也非常简单,就是若干标签,每个标签有若干属性. 我在学习HTML的过程中,也没有太过重视. 今年,在写前端表单验证的时候,发现maxlength这 ...
- uniapp input框聚焦时软键盘弹起整个页面上滑,固定页面不让上滑问题
根据需求,软键盘弹起时,不允许页面整体向上滑动 用到的属性是: :adjust-position="false" uni-app 软键盘顶起底部fixed定位的输入框 页面就不会 ...
- uni-app input text-indent失效解决
有两种方法去解决 第一种 input { padding-left: 10upt } 第二种 input { display: block }
- 《JavaScript 源码分析》之 maxlength.js
/* @author: Terry @params: feedback - the selector for the element that gives the user feedback. Not ...
- 限制input输入字符数(中文2个字符,英文1个字符)
input的maxlength可以限制input的输入的字符数,但是是字符串的长度,相当于判断str.length;然而经常会有中文字符算2个字符英文算1个字符的需求,目前只能通过编写代码来实现. & ...
- textbox和input限制文字长度
textbox 看下面 要求(限制140,并且显示还剩余多少个文字) <asp:textbox id="txt_xm" runat="server" on ...
- [小程序]微信小程序获取input并发送网络请求
1. 获取输入框数据wxml中的input上增加bindinput属性,和方法值在js部分定义与之对应的方法,只要在输入的时候,数据就会绑定调用到该方法,存入data属性变量中 2. 调用get请求发 ...
- Vue自定义指令实现input限制输入正整数
directive.js import Vue from 'vue' export default () => { Vue.directive('Int', { inserted: functi ...
- uni-app微信小程序文本框计数功能
<view> <textarea placeholder="请输入" @input="sumfontnum" :maxlength=" ...
随机推荐
- Tomcat——IDEA中创建 Maven Web 项目
IDEA中创建 Maven Web 项目 首先创建一个新的空项目 1.使用骨架 新建模块-找到如下骨架-创建 删除pom.xml中多余的坐标 ...
- ftrace irqs跟踪器
当中断被关闭(俗称关中断)了,CPU就不能响应其他的事件,如果这时有一个鼠标中断,要在下一次开中断时才能响应这个鼠标中断,这段延迟称为中断延迟.向current_tracer 文件写入 irqsoff ...
- 直播预告 | YashanDB 2023年度发布会正式定档11月8日,邀您共同见证国产数据库发展实践!
11月8日,YashanDB 2023年度发布会将于云端直播开启,发布会以 「惟实·励新」 为主题,邀请企业用户.合作伙伴.广大开发者共同见证全新产品与解决方案.届时发布会将在墨天轮社区同步进行,欢迎 ...
- 银河麒麟、中标麒麟学习实操资料汇总(含V4、V7、V10)
数据库和操作系统关系十分密切,因为数据库是运行于操作系统上的一个管理数据的应用.在数据库国产化替代的浪潮之下,一批批国产操作系统也崭露头角.墨天轮社区便选取了中国操作系统排行榜上排名靠前的麒麟软件,依 ...
- vue前端开发仿钉图系列(1)高德地图的使用详解
最近公司让参考钉图做图层模块相关的功能,很庆幸有机会细细研究地图相关的东西.因为手机端用的是高德地图,web端也使用高德地图.还是和往常一样,先贴上效果图. 步骤1.在高德开放平台注册信息,创建自己的 ...
- 1. 说一下 vue 的父子传参 ?
主要实现的方式: 1. 第一种方法 ,在子组件标签使用自定义属性="参数"和自定义事件,在子组件内使用 props 接受自定义属性 :如果子组件要修改参数,不能直接修改,因为 vu ...
- python中模块的概念以及常用模块
模块的概念:为了减少常用代码重复输入,同时方便多人协作,python中定义了模块一词. 模块是一些函数的集合.在python中可以使用import导入某一模块的单个或者所有功能. python中的模块 ...
- 云原生爱好者周刊:你对 K8s 集群升级有信心吗?
开源项目推荐 GoNoGo 在 Kubernetes 集群中,有多种因素会影响到附加组件的升级成功率,比如某些组件只支持特定的 API 或者特定的 Kubernetes 版本,某些组件废弃了特定的 a ...
- JS 识别安卓还是ios苹果、识别是否微信内置浏览器、手机类型
1.识别手机平台是IOS还是安卓 /** * [isMobile 判断平台] * @param test: 0:iPhone 1:Android */ function ismobile(test) ...
- 基于案例分析 MySQL 权限认证中的具体优先原则
在 MySQL 的日常管理过程中,大家或多或少会遇到权限认证相关的问题. 例如,本来能够正常执行的操作,可能在新增一个账号或授权后就突然失败了. 这种现象往往让人误以为是 bug,但很多时候,其实并不 ...