下面的Javascript函数限制了输入文本框中的字母,但不幸的是,它没有限制以下符号# $ % & ( .
,我也需要限制它们。
还可以将输入限制为14位,但不能少于或大于14位?
function restrictAlphabets(e){
var x=e.which||e.keycode;
if((x>=48 && x<=57) || x==8 || (x>=35 && x<=40)|| x==46)
return true;
else
return false;
}
答案 0 :(得分:0)
您可以使用maxlength
属性来限制input
字段或textarea
中输入文本的长度。要允许允许数字,您将需要使用允许的keyCodes创建一个Array,并检查事件的键码是否存在于Array中。
<input type="text" maxlength="14" onkeydown="return isAlpha(event)">
<script>
function isAlpha(e){
e = e||window.event;
var key = e.which||e.keyCode;
var nums = [8, 46, 37, 39, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 35, 36];
return nums.indexOf(key)!==-1;
}
</script>
但是,您只能使用<input type="number">
仅允许数字输入。您可以使用max
和min
属性来限制数字范围。 maxlength
不适用于数字输入,但是我添加了一种解决方法。您可能还想阻止输入e
键(键代码69),因为它在数字内有效。
<input type="number" min="1" max="99999999999999" maxlength="14" oninput="checkNumOfChars(this);" onkeydown="preventE(event)">
<script>
function checkNumOfChars(elem){
if (elem.value.length > elem.maxLength){
elem.value = elem.value.slice(0, elem.maxLength);
}
}
function preventE(event){
if(event.keyCode===69){
event.preventDefault();
}
}
</script>