layui输入框只允许输入中文且判断长度的例子


Posted in Javascript onSeptember 18, 2019

今天写项目遇到一个问题,在输入老师昵称的时候需要控制input输入框不能为空,且字符的长度有限制,英文字符不能超过20,中文不能超过10。输入课程简介的时候,textarea只能输入中文和中文标点,且长度不超过100。使用框架为:Thymeleaf + layui + shiro。

搜了很多资料没找到全的,现将具体实现展示如下:

[不为空的要求:]

layui输入框只允许输入中文且判断长度的例子

这个好解决,只要在代码中加入 lay-verify="required" 即可,这个在layui官方文档中就有,参考https://www.layui.com/doc/element/form.html

下面,咱们主要说长度的问题:

[效果]

layui输入框只允许输入中文且判断长度的例子

layui输入框只允许输入中文且判断长度的例子

解决方式:需要自己写自定义form.verify。因为layui中lay-verify:是表单验证的关键字

有以下值供选择:

required (必填项)

phone(手机号)

email(邮箱)

url(网址)

number(数字)

date(日期)

identity(身份证)

自定义值

没有符合要求的值,所以需要我们使用自定义值的方法

[代码如下:]

html代码如下:

<label class="layui-form-label">老师昵称:</label>
<div class="layui-input-block layui-width21em">
 <input id="userName" name="userName" placeholder="请输入昵称" class="layui-input"
 autocomplete="off">
 <span style="color:red">(20个字符或者10个中文字)</span>
</div>

layui输入框只允许输入中文且判断长度的例子

js代码:

//自定义验证规则

form.verify({
 clength: function (value) {
   var i,sum; 
  sum=0; 
  for(i=0;i<value.length;i++){ 
  if ((value.charCodeAt(i)>=0) && (value.charCodeAt(i)<=255)) 
   sum=sum+1; 
  else 
   sum=sum+2; 
  } 
   if (sum > 200) {
    return '老师简介最多只能200个字符或者100个中文字';
   }
  },
  nlength: function (value) {
  var i,sum; 
  sum=0; 
  for(i=0;i<value.length;i++){ 
  if ((value.charCodeAt(i)>=0) && (value.charCodeAt(i)<=255)) 
   sum=sum+1; 
  else 
   sum=sum+2; 
  } 
   if (sum > 20) {
    return '老师昵称最多只能20个字符或者10个中文字';
   }
  }
 });
 });|

layui输入框只允许输入中文且判断长度的例子

注意:一定要写在form表单提交之前,否则不会起作用。

思路:计算文本内容每个字符的unicode编码和,中文是双字符,英文是单字符。计算出来后判断总和,然后将函数名付给input即lay-verify=“required|nlength”(nlength为自己编写的名字) 。

下面,咱们解决下一个问题,填写课程简介的时候,判断长度不能超200且只能好似中文和中文标点。

[效果要求:]

layui输入框只允许输入中文且判断长度的例子

html代码:

<label class="layui-form-label">课程介绍:</label>
 <div class="layui-input-block">
 <textarea class="layui-textarea" style="height:200px;width:800px" lay-verify="required" name="content" placeholder="请输入课程介绍"
 th:text="${swCourse.content}"></textarea><span style="color:red">(字符数控制在100汉字以内,且只能上传文字)</span>
 </div>
 </div>|

js代码

layui.use([ ‘layer', ‘jquery', ‘form', ‘upload', ‘laytpl' ], function() {
 var $ = layui.jquery;
 var layer = layui.layer;
 var laytpl = layui.laytpl;
 var form = layui.form, upload = layui.upload;
 //自定义验证规则
 form.verify({
 length: function (value) {
   if(value.length > 20){
   return '课程名称最多只能20个字';
   }
  },
  characters:function(v){
   var numasc = 0;
    var charasc = 0;
    var otherasc = 0;
  for (var i = 0; i < v.length; i++) {
     var asciiNumber = v.substr(i, 1).charCodeAt();
     if (asciiNumber >= 48 && asciiNumber <= 57) {
      numasc += 1;
     }
     if ((asciiNumber >= 65 && asciiNumber <= 90)||(asciiNumber >= 97 && asciiNumber <= 122)) {
      charasc += 1;
     } 
     if ((asciiNumber >= 33 && asciiNumber <= 47)||(asciiNumber >= 58 && asciiNumber <= 64)||(asciiNumber >= 91 && asciiNumber <= 96)||(asciiNumber >= 123 && asciiNumber <= 126)) {
      otherasc += 1;
     }
    }
  if(numasc > 0 || charasc>0 || otherasc>0) {
     return "只能输入中文";
    }
  } ,
 clength: function (value) {
   var i,sum; 
  sum=0; 
  for(i=0;i<value.length;i++){ 
  if ((value.charCodeAt(i)>=0) && (value.charCodeAt(i)<=255)){ 
   sum=sum+1; 
  }else{
   sum=sum+2; 
  }
  } 
   if (sum > 200) {
    return '课程介绍最多只能输入100个中文字';
   }
  }
 });|

layui输入框只允许输入中文且判断长度的例子

最后将值付给textarea,即lay-verify=“required|characters|clength”。

好的,现在就可以了(格式好难调,尴尬尴尬,,)

各位如果有其他更好的方式,欢迎追加哦,小妹在此多谢了,有问题之处,还望能提出来!

以上这篇layui输入框只允许输入中文且判断长度的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript验证上传图片大小[前台处理]
Jul 18 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
Sep 22 Javascript
在浏览器中打开或关闭JavaScript的方法
Jun 03 Javascript
让JavaScript中setTimeout支持链式操作的方法
Jun 19 Javascript
js实现获取当前时间是本月第几周的方法
Aug 11 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
Mar 09 Javascript
基于JavaScript实现鼠标箭头移动图片跟着移动
Aug 30 Javascript
js从输入框读取内容,比较两个数字的大小方法
Mar 13 Javascript
详解React native全局变量的使用(跨组件的通信)
Sep 07 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
Nov 22 Javascript
微信web端后退强制刷新功能的实现代码
Mar 04 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
Apr 13 Javascript
Vue Components 数字键盘的实现
Sep 18 #Javascript
layui输入框中只允许输入整数的实现方法
Sep 18 #Javascript
layui富文本编辑器前端无法取值的解决方法
Sep 18 #Javascript
使用layui 的layedit定义自己的toolbar方法
Sep 18 #Javascript
Typescript的三种运行方式(小结)
Sep 18 #Javascript
微信小程序授权登陆及每次检查是否授权实例代码
Sep 18 #Javascript
layui的layedit富文本赋值方法
Sep 18 #Javascript
You might like
PHP&amp;MYSQL服务器配置说明
2006/10/09 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
php实现文件与16进制相互转换的方法示例
2017/02/16 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
关于文本框的一些限制控制总结~~
2010/04/15 Javascript
jQuery实现的类flash菜单效果代码
2010/05/17 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
2013/05/19 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
2014/08/27 Javascript
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
jquery制作 随机弹跳的小球特效
2015/02/01 Javascript
深入解析JavaScript的闭包机制
2015/10/20 Javascript
JavaScript面试题大全(推荐)
2016/09/22 Javascript
JS自定义函数对web前端上传的文件进行类型大小判断
2016/10/19 Javascript
js 获取今天以及过去日期
2017/04/11 Javascript
jQuery EasyUI Layout实现tabs标签的实例
2017/09/26 jQuery
基于Vue制作组织架构树组件
2017/12/06 Javascript
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
2018/08/09 Javascript
Vue-component全局注册实例
2018/09/06 Javascript
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
原生js实现放大镜组件
2021/01/22 Javascript
Python中os和shutil模块实用方法集锦
2014/05/13 Python
python删除指定类型(或非指定)的文件实例详解
2015/07/06 Python
Python守护进程和脚本单例运行详解
2017/01/06 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
Python基础教程之异常详解
2019/01/10 Python
PYQT5设置textEdit自动滚屏的方法
2019/06/14 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
Html5写一个简单的俄罗斯方块小游戏
2019/12/03 HTML / CSS
来自世界各地的优质葡萄酒:VineShop24
2018/07/09 全球购物
PHP面试题附答案
2015/11/28 面试题
JSF界面控制层技术
2013/06/17 面试题
委托书如何写
2014/08/30 职场文书
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis