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 相关文章推荐
js图片延迟加载的实现方法及思路
Jul 22 Javascript
JavaScript移除数组元素减少长度的方法
Sep 05 Javascript
javascript从image转换为base64位编码的String
Jul 29 Javascript
浅谈类似于(function(){}).call()的js语句
Mar 30 Javascript
jquery及js实现动态加载js文件的方法
Jan 21 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
Mar 25 Javascript
老生常谈遮罩层 滚动条的问题
Apr 29 Javascript
jQuery与JS加载事件用法分析
Sep 04 Javascript
遍历js中对象的属性和值的实例
Nov 21 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
Jun 13 Javascript
基于JS递归函数细化认识及实用实例(推荐)
Aug 07 Javascript
原生JS实现获取及修改CSS样式的方法
Sep 04 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 Session会话超时时间设置方法
2014/06/10 PHP
php生成QRcode实例
2014/09/22 PHP
php简单压缩css样式示例
2016/09/22 PHP
用javascript动态调整iframe高度的方法
2007/03/06 Javascript
javascript options属性集合操作代码
2009/12/28 Javascript
js replace 与replaceall实例用法详解
2013/08/03 Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
2015/03/02 Javascript
封装好的javascript前端分页插件pagination
2016/01/04 Javascript
nodejs使用express创建一个简单web应用
2017/03/31 NodeJs
详解微信小程序 相对定位和绝对定位
2017/05/11 Javascript
vue2.0移除或更改的一些东西(移除index key)
2017/08/28 Javascript
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
微信小程序使用蓝牙小插件
2019/09/23 Javascript
javascript实现前端分页效果
2020/06/24 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
[00:57]林俊杰助阵DOTA2亚洲邀请赛
2015/01/28 DOTA
Python的subprocess模块总结
2014/11/07 Python
用Python给文本创立向量空间模型的教程
2015/04/23 Python
python3.4用函数操作mysql5.7数据库
2017/06/23 Python
Python将DataFrame的某一列作为index的方法
2018/04/08 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
用python读取xlsx文件
2020/12/17 Python
data:image data url 文件转为Blob上传后端的方法
2019/07/16 HTML / CSS
linux面试题参考答案(5)
2014/09/01 面试题
中国央视网签名寄语
2014/01/18 职场文书
2014年秋季开学演讲稿
2014/05/24 职场文书
县政府领导班子“四风”方面突出问题整改措施
2014/09/23 职场文书
2014年技术工作总结范文
2014/11/20 职场文书
特岗教师个人总结
2015/02/10 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
三好学生竞选稿范文
2019/08/21 职场文书
mysql查询的控制语句图文详解
2021/04/11 MySQL
在HTML5 localStorage中存储对象的示例代码
2021/04/21 Javascript
Win10系统搭建ftp文件服务器详细教程
2022/08/05 Servers
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python