限制表单Input的长度,当达到一定长度时不能再输入

html代码:

<div class="news-edit">

<label for="" class="edit-titlelabel">标题</label>

<span class="news-inputbox"><input type="text" placeholder="请输入文本" id="title" onkeydown="check_input(‘title‘,‘remLen‘,36);" onkeyup="check_input(‘title‘,‘remLen‘,36);"/></span>

<span class="wordnum-limit"><span id="remLen">0/18</span></span>

</div>

js代码:

//该函数用于输出框,当输入值大于指定的最大值的时候,返回当长度等于Max的值
function getByteVal(val, max) {
var returnValue = ‘‘;
var byteValLen = 0;
for (var i = 0; i < val.length; i++) {
if (val[i].match(/[^\x00-\xff]/ig) != null)
byteValLen += 2;
else
byteValLen += 1;
if (byteValLen > max)
break;
returnValue += val[i];

}
return returnValue;
}
//该函数用户计算输入框中 的输入值的长度,其中中文为2,英文为1,数字为1
function countCharacters(str){
var totalCount = 0;
//alert("ss");
for(var i=0; i<str.length; i++){
var c = str.charCodeAt(i);
if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)){
totalCount++;
}else{
totalCount+=2;
}
}
return totalCount;
}
//该函数用于检验输入值,在该函数中调用了以上两个函数
function check_input(id,remId,max){

var send_wb_count=max;

//var txt = id.value;
var txt=document.getElementById(id).value;
//alert(txt);

var wb_count = countCharacters(txt);

//var info=id.next();
if(wb_count > send_wb_count){
//$(‘#send_weibo‘).val(txt.substring(0,130));
//id.val(getByteVal(txt,max));
$("#"+id).val(getByteVal(txt,max));
//alert(id.val(getByteVal(txt,max)));
$("#"+remId).html("长度超过"+send_wb_count/2) ;
}else{
$("#"+remId).html(Math.floor((send_wb_count-wb_count)/2)+"/"+max/2) ;
}
}

限制表单Input的长度,当达到一定长度时不能再输入

时间: 2024-11-08 20:10:44

限制表单Input的长度,当达到一定长度时不能再输入的相关文章

10.4 限制表的列数和行的大小

官方地址: http://dev.mysql.com/doc/refman/5.7/en/column-count-limit.html 每个表中硬性规定,就是最多只允许存储4096个列,有效的最大值可能小于给定的表,确切的限制取决于几个相互作用的因素. 1.每个表(不关心存储引擎)单行最大值占65535字节.存储引擎可能会在这个限制上放置额外的约束,以减少有效的最大行大小. 最大行大小限制了咧的数量(可能存储大小),因为所有列的总长度不能超过这个大小 例如: 每个UTF8字符需要3个字节. 所

表单input按钮在各浏览器之间的兼容性

从网上看了这篇关于表单input按钮的浏览器兼容性问题,总结的还不错,所以copy下来学习下. input按钮在各个浏览器之间的兼容性问题,看下边这段代码: input.item { background: #4D90FE; border: 1px solid #4D90BB; color: white; } <input type="submit" value="提交" /> 这是很简单的一个input提交按钮,它在各大浏览器中的情况如下: 很明显,我

前端1-----块级标签(独占一行),排版标签(样式排版),其他标签,form表单(input的多种类型)

前端1-----块级标签(独占一行),排版标签(样式排版),其他标签,form表单(input的多种类型) 一丶HTML块级标签 排版标签 p 标签: 段落标签,会自动在段落上下加上空白来分开 p标签是一个文本标签,本身是一个块级标签不能再嵌套块标签 div 标签: 没有样式的标签 ,最常用 列表 ???????1.无序列表 常用 ??????2.有序列表 ??????3.标题列表 # 无序列表 circle:空心圆, disc:默认实心圆,square:实心方片 <ul type='circl

MySQL的varchar定义长度是指字符长度,不是字节长度

今天在做页面的一个input的输入字符串长度校验的任务,数据库中对这个字段定义为 title  varchar(128) null, MySQL数据库. 一直以为128是字节长度,一个汉字2字节,英文等一个字节,所以最多只能放64个汉字. 可实际是我能放128个汉字,不能放129个汉字.说明:MySQL的varchar定义长度是指字符长度,不是字节长度. 字符: 人们使用的记号,抽象意义上的一个符号.一个汉字和英文就是一个字符,如'1', '中', 'a', '$', '¥',…… 字节: 计算

fscanf_s在读入string时必须同时输入长度

fscanf_s在读入string时必须同时输入长度,比如: char buf[100]; fscanf_s(file,"%s",buf,100);//这里如果缺少100这个长度的话,会出现运行时错误!

linux操作系统-给文本添加 &#39; -单引号,一般转成CSV格式时使用

[[email protected] ~]# cat 1.txt1ms2ms3ms4ms5ms [[email protected] ~]# cat 1.txt | awk '{print $1"\047"}'1ms'2ms'3ms'4ms'5ms' [[email protected] ~]# cat 1.txt | awk '{print $1"\047"}' > 2.txt[[email protected] ~]# cat 2.txt1ms'2ms'3

在传统以太网中,为什么要有最小帧长度和最大帧长度的限制

在传统以太网中,为什么要有最小帧长度和最大帧长度的限制? 以太网(IEEE 802.3)帧格式: 1.前导码:7字节0x55,一串1.0间隔,用于信号同步 2.帧起始定界符:1字节0xD5(10101011),表示一帧开始 3.DA(目的MAC):6字节 4.SA(源MAC):6字节 5.类型/长度:2字节,0-1500保留为长度域值,1536-65535保留为类型域值(0x0600-0xFFFF) 6.数据:46-1500字节 7.帧校验序列(FCS):4字节,使用CRC计算从目的MAC到数据

HTTP协议对URI长度,POST数据长度及COOKIE长度限制说明

1. URL长度限制 在Http1.1协议中并没有提出针对URL的长度进行限制,RFC协议里面是这样描述的,HTTP协议并不对URI的长度做任何的限制,服务器端必须能够处理任何它们所提供服务多能接受的URI,并且能够处理无限长度的URI,如果服务器不能处理过长的URI,那么应该返回414状态码. 虽然Http协议规定了,但是Web服务器和浏览器对URI都有自己的长度限制. 服务器的限制:我接触的最多的服务器类型就是Nginx和Tomcat,对于url的长度限制,它们都是通过控制http请求头的长

C++ 学习笔记3,struct长度测试,struct存储时的对齐方式

之所以专门为struct的长度写一篇测试,是因为原来c++对于struct的变量, 在分配内存的时候,c++对struct有一种特殊的存储机制. 看下面的测试: 一.在Windows7 32bit ,IDE为VS2010中测试 #include <iostream> using namespace std; //结构体测试 //测试环境为Windows 32bit,IDE为VS2010 //结构体 struct structZero//长度为1,无疑问 { char c; }; //从下面开始