您的位置:

js禁止小键盘输入数字功能源码,js控制input只能输入数字

本文目录一览:

js中怎样控制不满足条件时不让键盘输入

最经典的实现字符数控制的方案

当我们在ASP.NET开发时,经常会遇到一个头疼的问题:字符数的控制

由于数据库的字段长度是固定的,因此在进行字符输入时,最关键的就是控制字符的个数不能超过字段的长度,要不然,一个个异常会让人疯掉的。

对于单行文本框,不管是HTML控件还是Web控件,我们经常会使用MaxLength来控制,但这种控制无法控制到中文字符,即MaxLength=50的控制,可以输入50个英文与50个中文,这样的话,还是会导致中文字符数的溢出。

对于多行文本框,那就更惨了,使用MaxLenth根本不起作用的。

下面提供的方案优势:

1)最佳的方法是在文本框中输入时,控制到最大字数,超过时不能进行输入;

2)对于粘帖的情况也要能兼容,以前网上的方法不能控制到paste的情况;

3)对于最后的一个中文字符,宁愿舍去也不能多一个字符,比如50的字符数,在第49个时,最后输入一个中文,会导致最终字数为51,而这种情况,推荐是不能输入中文,保证最终的字符数=50最佳,因为放弃一个中文字符总比数据库报错要好吧。

4)为了提高开发效率,尽可能的减少代码量,此方案不需要为文本框添加任何事件,而是由脚本块自己解决,因此只需要把脚本块饮包含到页面中就可以了,这应该是相当方便了吧

完善版修改:由于前一个方案中,一些输入法无法激活onpress事件,导致对于中文的不支持,现在采用onkeyup事件处理,在处理方式上也进行了修改,原来的onpress事件是进行输入控制,而onkeyup只能对已经输入后的字数进行字数判断,过长的进行截短处理。

在原方案中,有位朋友指出:数据采用n(type)系统不会报错,是的,如果采用n(type)的话,是以字符为基础的,可以不考虑数据库出错的可能性,但同样也存在一个界面显示的问题,比如界面上的Address值,希望是100个字符,如果不进行中英文字数区分,最多将输入100个中文,从而占200 个字节空间,导致Adress在显示时会超过预料的空间,界面搞得不易控制。因此,此方案还是有可取之处的。

具体新方案实现:

1)将以下的代码包含到页面中:

script language="javascript"

!--

String.prototype.len=function(){

return this.replace(/[^/x00-/xff]/g,"**").length;

}

//Set maxlength for multiline TextBox

function setMaxLength(object,length)

{

var result = true;

var controlid = document.selection.createRange().parentElement().id;

var controlValue = document.selection.createRange().text;

var tempString=object.value;

var tt="";

for(var i=0;ilength;i++)

{

if(tt.len()length)

tt=tempString.substr(0,i+1);

else

break;

}

if(tt.len()length)

tt=tt.substr(0,tt.length-1);

object.value=tt;

}

//Check maxlength for multiline TextBox when paste

function limitPaste(object,length)

{

var tempLength = 0;

if(document.selection)

{

if(document.selection.createRange().parentElement().id == object.id)

{

tempLength = document.selection.createRange().text.len();

}

}

var tempValue = window.clipboardData.getData("Text");

tempLength = object.value.len() + tempValue.len() - tempLength;

if (tempLength length)

{

tempLength -= length;

var tt="";

for(var i=0;itempValue.len()-tempLength;i++)

{

if(tt.len()(tempValue.len()-tempLength))

tt=tempValue.substr(0,i+1);

else

break;

}

if(tt.len()=0)

{

window.event.returnValue=false;

}

else

{

tempValue=tt;

window.clipboardData.setData("Text", tempValue);

window.event.returnValue = true;

}

}

}

function PressLength()

{

if(event.srcElement.type=="text" || event.srcElement.type=="textarea" )

{

if(event.srcElement.length!=null)

setMaxLength(event.srcElement,event.srcElement.length);

}

}

function LimitLength()

{

if(event.srcElement.type=="text" || event.srcElement.type=="textarea" )

{

if(event.srcElement.length!=null)

limitPaste(event.srcElement,event.srcElement.length);

}

}

document.documentElement.attachEvent('onkeyup', PressLength);

document.documentElement.attachEvent('onpaste', LimitLength);

//--

/script

2)在需要控制的控件上添加length="n"(n为要控制的字数)即可,如:

INPUT type="text" length="3" TEXTAREA length="20" rows="2" cols="20"/TEXTAREA asp:TextBox id="TextBox1" runat="server" length="7"/asp:TextBox asp:TextBox id="TextBox2" runat="server" TextMode="MultiLine" length="10"/asp:TextBox 上面是HTML控件与Web控件的例子,只要加一个length就可以了。

个人建议:1)可以把这个脚本块放在js文件中,进行引用即可

2)可以把脚本放在BasePage中,这样每个页面都可以使用了

3)可以使用这些脚本块,开发专门的服务器端控件。

如何禁止js表单输入主键盘0-9上面的符号。

总结起来,用户有 4 种方法可以输入被禁止的符号:

1、键盘 Shit + [1-0]

2、键盘 Ctrl + V

3、鼠标右键 - 粘贴

4、第三方工具,例如 Firebug 直接修改 DOM

所以要为每一个可能性写相应的代码。下面代码中假设文本框 ID 为 my_text。

window.onload = function() {

// 获取元素

var ele = document.getElementById("my_text");

// 此函数将 1-0 数字上面的符号全部替换掉

function checkInput(ele) {

var regex = /[\!@#\$%\^\*\(\)_\+]+/g;

if(ele.value.length regex.test(ele.value)) {

ele.value = ele.value.replace(regex, '');

}

}

// 当 shift 和 1-0 被按下时,return false

ele.onkeydown = function(e) {

e = e || window.event;

var k = (typeof e.which == "number") ? e.which : e.keyCode;

if(e.shiftKey k = 48 k = 57) {

return false;

}

};

// 当 ctrl + v 被按下时,调用 checkInput 函数

ele.onkeyup = function(e) {

e = e || window.event;

var k = (typeof e.which == "number") ? e.which : e.keyCode;

if(e.ctrlKey k == 86) {

checkInput(ele);

}

};

// 当用户使用右键进行粘贴后 或 当内容发生改变时

// 相当于 onblur,调用 checkInput 函数

ele.onchange = function() {

checkInput(ele);

};

};

如何用js 代码禁用键盘某个按键

form

input type="text" id="NotInputS" /

/form

script

document.getElementById("NotInputS").onkeypress=function(e){

var keynum=window.event ? e.keyCode : e.which; //获取键盘码

var keychar = String.fromCharCode(keynum);//获取键盘吗对应的字符

alert(keynum);

if(keychar=='S' || keychar=='s')//这个实例不能输出S,s

return false;//返回false表示不输出此字符

else

return true;//true就是输出

};

//请用onkeypress,不要用onkeydown/onkeyup

//除非你不在意字母的大小写

//onkeydown的S与s的按键码是一样的

/script

js禁止小键盘输入数字功能源码,js控制input只能输入数

2022-11-24
求一个只能输入数字的js代码,js只能输入数字和小数点

2022-11-23
js禁止复制代码(js禁止复制文字)

本文目录一览: 1、网页禁止复制怎么办 2、MetInfo 怎么设置JS禁止复制? 3、怎么使用JS禁止复制粘贴 4、手机页面 如何 用js 禁止 拷贝文字? 网页禁止复制怎么办 在网页上查询数据经常

2023-12-08
input只能输入小数点后两位

2023-05-18
Vue限制输入框只能输入数字

2023-05-21
js键盘实例讲解,js键盘实例讲解教程

2022-11-22
破解网页右键被禁止js(鼠标右键被禁用怎么解除?)

本文目录一览: 1、【引用】网页右键禁用不能复制怎么办 2、如何破解用js来限制的鼠标右键 3、网页内容不允许复制,鼠标右键被屏蔽,如何解决 【引用】网页右键禁用不能复制怎么办 还不弹出的不能复制的对

2023-12-08
input只允许输入数字

2023-05-18
js禁用网页按键(js 禁用鼠标右键)

本文目录一览: 1、javascript怎么禁用浏览器后退按钮 2、如何用JS禁用网页F12按键。。。急急 3、js如何屏蔽浏览器自带的快捷键功能 javascript怎么禁用浏览器后退按钮 打开一个

2023-12-08
不允许查看js源码文档介绍内容(js禁止查看页面源码)

本文目录一览: 1、JS禁止查看网页源代码的实现方法 2、如何不让用户看到js文件里面的参数 3、如何禁止查看网页源代码? 4、如何禁止查看html源码或者js,浏览器分别为I 5、怎样不让用户查看网

2023-12-08
vueinput只能输入数字的使用说明

2023-05-18
Vue3 Input——一个多功能的输入框

2023-05-20
js清空输入框代码(html清空输入框)

本文目录一览: 1、js 怎么清空输入框内容 2、javascript如何实现清除单击输入框的时候,清除输入框内的提示文字? 3、jsp中清除文本框的内容怎么写 4、如何清空一个div里面所有inpu

2023-12-08
如何实现input框只能输入数字

2023-05-20
java键盘输入,java键盘输入char类型

2022-11-29
el-input只能输入数字

2023-05-20
js代码实现的功能(js主要功能)

本文目录一览: 1、鼠标事件,js代码实现div移动功能 2、JS代码所实现的功能 3、写一段javascript(或jQuery)代码实现以下功能? 鼠标事件,js代码实现div移动功能 首先引入j

2023-12-08
如何删除网页禁止右键的js代码,js禁止浏览器右键

本文目录一览: 1、如何用jquery或者插件解除网页禁用右键复制的限制 2、如何解除网页不能用鼠标右键的限制? 3、保存下来一个网页,但是右键审查元素时,不能右键,怎么修改代码,还是说去掉js? 如

2023-12-08
如何暂时禁用js代码(如何暂时禁用js代码命令)

本文目录一览: 1、网页禁用js代码 2、如何禁用js脚本 3、如何暂时禁用js代码 网页禁用js代码 Javascript 请根据以下步骤禁用或启用: 打开浏览器的 工具 Internet 选项(或

2023-12-08
控制器里能不能加入js代码(控制器里能不能加入js代码输出)

本文目录一览: 1、thinkphp框架做项目,想要从控制器向html模板页的js中传一个值,想知道怎么在js中接到这个值? 2、Thinkphp 中如何在模板中的JS代码里使用 控制器中assign

2023-12-08