如何使用javascript或jquery限制字段中字符输入的数量
How can I restrict number of character input in a field with javascript or jquery?
我为一个输入文本字段编写了一个验证代码,它将只接受数字和一些控制键。我接受了stackoverclow的帮助:),所以我再次来到这里接受帮助。验证码是
$("#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();
}
}
});
现在让我告诉你我在寻找什么,首先,我想限制这个字段只接受4位数字。不多不少,第二个是关于优化的。我希望此验证工作的文本字段是(are)
<asp:TextBox runat="server" ID="txtLevel1Year" Width="50px" TabIndex="13"></asp:TextBox>
<asp:TextBox runat="server" ID="txtLevel2Year" Width="50px" TabIndex="17"></asp:TextBox>
<asp:TextBox runat="server" ID="txtLevel3Year" Width="50px" TabIndex="21"></asp:TextBox>
<asp:TextBox runat="server" ID="txtLevel4Year" Width="50px" TabIndex="25"></asp:TextBox>
在这里,我可以重复验证代码4次,通过获取四个不同的id,使此工作,尽管验证是完全相同的。我能做些什么来消除这种重复吗?如果我的问题你不清楚,请让我知道。提前感谢大家。这是这个问题的编辑部分,我已经通过创建一个CSS类实现了优化的目标,并在我放置所有年份文本框的div中调用它。但我的极限是4位数还没有解决。请帮帮我。
我假设您的验证有效。诀窍是为所有文本框添加一个类。假设类名是
.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();
}
}
});
请记住,您可以在HTML中设置<input maxlength="4">
作为解决一半问题的简单解决方案。然而,这只能防止浏览器用户输入超过4个字符,但你可以通过调用一些JS函数来设置更长的值,从而通过编程来避免它。
试试这个(不允许闪烁,也不允许复制粘贴):
$(".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;
}
});
http://jsfiddle.net/xEMzx/好的,首先为所有四个字段设置验证代码,您可以使用类选择器(在为所有元素定义类之后):
<asp:TextBox runat="server" class='validate'
$(".validate").keydown(function(event)
检查长度,您可以使用keyup事件(根据我的经验,这更适合此任务)
$(".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;
}
});
提琴在这里:http://jsfiddle.net/a5BJX/
相关文章:
- 如何在单击时从输入字段中删除最后一个字符
- 在粘贴事件Javascript的输入字段中删除所有非数字字符
- 验证输入字段和块字符
- 如果输入字段不是 40 个字符,则隐藏付款表单PayPal提交按钮
- JavaScript/jQuery – 在输入字段的末尾添加一个字符
- 根据字符大小指定输入字段宽度
- 在 Chrome 文本输入字段中插入控制字符
- 是否可以替换输入字段中每个字符的颜色
- JS/JQuery-如果空格是第一个和/或最后一个字符,则从输入字段中删除空格
- 将带有ASCII控制字符的条形码扫描到输入字段中
- 正在禁用输入字段中的Unicode字符范围
- JavaScript-如何在Firefox浏览器中启用箭头键,同时根据特殊字符验证输入字段
- 当在输入字段中键入了一定数量的字符时,如何使元素出现(例如勾号)
- 我想使用regex验证输入字段中重复字符的单词
- 正在检查标签文本,并验证与其绑定的输入字段是否至少包含x个数量的字符
- 输入字段限制为9个字符,并且在3个字符之后自动广告“0”-&”;
- 将输入字段中的字符限制为一组字符
- 输入字段的值后面一个字符
- 在输入字段中输入字符时自动提示
- 如何在输入字段中删除前3个字符,在用户完成输入后-使用jQuery