2

我有一个表格,它只允许在文本框中输入数字,或者出现警告:

<form name="formName" action="" method="post" OnSubmit="return chkSubmit();"> 
    Input Number 
    <input type="text" name="txtNumber" value="">
    <input type="submit" name="btnSubmit" value="Submit">
</form>

使用以下 javascript:

<script>
function chkSubmit()
{
     if(isNaN(document.formName.txtNumber.value))
     {
        alert('Please input numbers only.');
        return false;
     }
}</script>

如何只允许输入 4 个字符?没有警报,只是阻止用户输入超过 4 个字符。

4

2 回答 2

5

input元素支持maxlength属性,例如:

<input type="text" name="txtNumber" value="" maxlength="4">

...然后由用户代理(浏览器)强制执行。chkSubmit如果你想要一个带大括号的方法,你也可以通过检查属性的长度来强制执行它value,但它一直存在,我怀疑你会找到一个不处理它的用户代理。

RobG 的观点(在对该问题的评论中)也得到了很好的接受:在提交表单之前限制用户往往会激怒他们。它可能适合也可能不适合您的用例,但至少考虑不限制它们(但可能使用keypress事件提供一些视觉反馈),并且仅在提交时验证长度,就像 Stack Overflow 对评论所做的那样。

于 2012-10-30T23:11:52.343 回答
1

使用最大长度

<form name="formName" action="" method="post" OnSubmit="return chkSubmit();"> 
    <input type="text" name="txtNumber" maxlength="4" value="" />
    <input type="submit" name="btnSubmit" value="Submit" />
</form>
于 2012-10-30T23:15:54.730 回答