如何使用javascript或jquery限制字段中输入的字符数?
我为输入文本字段编写了一个验证代码,它只接受数字和一些控制键。我接受了StackOverflow的帮助:),所以我再次来到这里接受帮助。我的验证码是如何使用javascript或jquery限制字段中输入的字符数?,javascript,jquery,asp.net,validation,Javascript,Jquery,Asp.net,Validation,我为输入文本字段编写了一个验证代码,它只接受数字和一些控制键。我接受了StackOverflow的帮助:),所以我再次来到这里接受帮助。我的验证码是 $("#txtLevel1Year").keydown(function(event) { // Allow only backspace,delete,left arrow,right arraow and Tab if ( event.keyCode ==
$("#txtLevel1Year").keydown(function(event)
{
// Allow only backspace,delete,left arrow,right arraow and Tab
if ( event.keyCode == 46
|| event.keyCode == 8
|| event.keyCode == 37
|| event.keyCode == 39
|| event.keyCode == 9)
{
// let it happen, don't do anything
}
else {
// Ensure that it is a number and stop the keypress
if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode <96 ||event.keyCode > 105) ) {
event.preventDefault();
}
}
});
$(“#txtLevel1Year”).keydown(函数(事件)
{
//仅允许退格、删除、左箭头、右箭头和制表符
如果(event.keyCode==46
||event.keyCode==8
||event.keyCode==37
||event.keyCode==39
||event.keyCode==9)
{
//让它发生吧,什么都不要做
}
否则{
//确保它是一个数字并停止按键
如果((event.keyCode<48 | | event.keyCode>57)和&(event.keyCode 105)){
event.preventDefault();
}
}
});
现在让我告诉你我在寻找什么,首先,我想限制这个字段正好取4位数字。不多不少,第二个是关于优化。
我希望进行此验证的文本字段为
在这里,我可以重复验证代码4次,通过获取四个不同的ID来完成这项工作,尽管验证是完全相同的。我能做些什么来消除这种重复吗?如果你不清楚我的问题,请告诉我。
提前告诉你们所有人。
这是这个问题的编辑部分,我通过创建一个CSS类并在我放置全年文本框的div中调用它,实现了优化的目标。但我的限制是精确到4位数,这还没有解决。请帮帮我 好的,首先要对所有四个字段使用验证代码,您可以使用类选择器(在为所有元素指定CALS之后):
在这里摆弄:我认为您的验证是有效的。诀窍是为所有textbox添加一个类。说类名是
.validateTB
然后按如下方式修改脚本
$(".validateTB").keydown(function(event)
{
// Allow only backspace,delete,left arrow,right arraow and Tab
if ( event.keyCode == 46
|| event.keyCode == 8
|| event.keyCode == 37
|| event.keyCode == 39
|| event.keyCode == 9)
{
// let it happen, don't do anything
}
else {
// Ensure that it is a number and stop the keypress
if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode <96 ||event.keyCode > 105) ) {
event.preventDefault();
}
}
});
$(.validateTB”).keydown(函数(事件)
{
//仅允许退格、删除、左箭头、右箭头和制表符
如果(event.keyCode==46
||event.keyCode==8
||event.keyCode==37
||event.keyCode==39
||event.keyCode==9)
{
//让它发生吧,什么都不要做
}
否则{
//确保它是一个数字并停止按键
如果((event.keyCode<48 | | event.keyCode>57)和&(event.keyCode 105)){
event.preventDefault();
}
}
});
请注意,脚本中只更改了选择器。尝试以下操作:(不闪烁,也不允许复制粘贴):
请记住,您可以将HTML中的
设置为问题的一半的简单解决方案。但是,这只会阻止浏览器用户输入超过4个字符,但您可以通过编程避免,通过调用一些设置较长值的JS函数。对于类似的验证,请记住使用复制和粘贴来测试字段-使用键盘快捷键和鼠标右键单击。请告诉我如何实现这一点。我将所有文本框放在一个div中,在div处我调用了类,它工作了。您的最后一部分不工作,我做了一些修改,比如$(“.validateYearTextBox”).keydown(函数(事件){//相同的代码});然后通过替换适当的类名粘贴代码。但它不工作这里是一个工作小提琴,有两个小错误-复制/粘贴代码再次我提出一个新的问题,请回答这个在那里,这部分是太梅西
$(".validate").keyup(function(event){
var val = $(this).val();
if (val.length > 4){
alert ("Max length is 4");
val = val.substring(0, val.length - 1);
$(this).val(val);
$(this).focus();
return false;
}
});
.validateTB
$(".validateTB").keydown(function(event)
{
// Allow only backspace,delete,left arrow,right arraow and Tab
if ( event.keyCode == 46
|| event.keyCode == 8
|| event.keyCode == 37
|| event.keyCode == 39
|| event.keyCode == 9)
{
// let it happen, don't do anything
}
else {
// Ensure that it is a number and stop the keypress
if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode <96 ||event.keyCode > 105) ) {
event.preventDefault();
}
}
});
$(".validate").keyup(function(event) {
var val = $(this).val();
if (val.length > 5) {
val = val.substring(0, 5);
$(this).val(val);
return false;
}
}).keypress(function(event) {
if ($(this).val().length > 4) {
return false;
}
});