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 相关文章推荐
详解new function(){}和function(){}() 区别分析
Mar 22 Javascript
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
Feb 17 Javascript
ExtJs使用总结(非常详细)
Mar 22 Javascript
js和php如何获取当前url的内容
Sep 22 Javascript
浅析jquery某一元素重复绑定的问题
Jan 03 Javascript
JavaScript立即执行函数的三种不同写法
Sep 05 Javascript
react学习笔记之state以及setState的使用
Dec 07 Javascript
vue中实现图片和文件上传的示例代码
Mar 16 Javascript
Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
Nov 25 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
Jun 20 jQuery
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
Dec 24 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
Jul 31 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
我的论坛源代码(四)
2006/10/09 PHP
PHP安装攻略:常见问题解答(二)
2006/10/09 PHP
PHP下几种删除目录的方法总结
2007/08/19 PHP
PHP导入导出Excel代码
2015/07/07 PHP
php框架CodeIgniter主从数据库配置方法分析
2018/05/25 PHP
PHP实现一个按钮点击上传多个图片操作示例
2020/01/23 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
疯掉了,尽然有js写的操作系统
2007/04/23 Javascript
javascript与有限状态机详解
2014/05/08 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
2016/09/20 Javascript
网页中右键功能的实现方法之contextMenu的使用
2017/02/20 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
2017/05/31 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
2017/08/18 Javascript
node.js到底要不要加分号浅析
2018/07/11 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
vue视频播放暂停代码
2019/11/08 Javascript
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[56:48]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python工程师面试题 与Python Web相关
2016/01/14 Python
基于Python函数的作用域规则和闭包(详解)
2017/11/29 Python
Django数据库表反向生成实例解析
2018/02/06 Python
Python实现读取txt文件并转换为excel的方法示例
2018/05/17 Python
ZABBIX3.2使用python脚本实现监控报表的方法
2019/07/02 Python
django多对多表的创建,级联删除及手动创建第三张表
2019/07/25 Python
python3实现用turtle模块画一棵随机樱花树
2019/11/21 Python
python将数组n等分的实例
2019/12/02 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
2020/05/07 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
阿迪达斯法国官方网站:adidas法国
2018/03/20 全球购物
怎么写有吸引力的自荐信
2013/11/17 职场文书
建筑装饰学院室内设计专业个人自我评价
2013/12/07 职场文书
中专生职业生涯规划书范文
2013/12/29 职场文书