让用户在输入文本字段中只键入三个不同的字符

时间:2011-05-25 21:21:37

标签: javascript html

有没有办法让用户只输入三个字符?例如,我只想在输入文本字段中允许369

7 个答案:

答案 0 :(得分:4)

以下是使用jQuery的方法:http://jsfiddle.net/ThiefMaster/UZJn2/

<input type="text" maxlength="1" class="only369" />



$('.only369').keyup(function(e) {
    if(this.value != '3' && this.value != '6' && this.value != '9') {
        this.value = '';   
    }
});

答案 1 :(得分:2)

纯JS解决方案:

http://jsfiddle.net/ampersand/eg8Dn/

源:

<input id="number" type="number" min="3" max="9" step="3" value="3">

<script>
document.getElementById('number').addEventListener('keyup',function(ev){
    this.value=!!~['3','6','9'].indexOf(this.value) ? this.value : '';
})
</script>

答案 2 :(得分:1)

我认为这可能对你有帮助......

<script type="text/javascript">
function validate(e)
{
    return (e.charCode == 51 || e.charCode == 54 || e.charCode == 57)
}
</script>
<form>
<input name="name" type="text" onkeypress="return validate(event);" />
</form>

如果要限制出现的次数,只需设置输入字段的maxlength属性。

答案 3 :(得分:0)

简短回答:

"0123456789".replace(/[^369]/g, "")

答案 4 :(得分:0)

当然。在输入元素上侦听onchange事件,当值与这三个数字不同且大于树时,return false

答案 5 :(得分:0)

使用onchange="this.value=this.value.replace(/[^369]/g, '')"

答案 6 :(得分:0)

使用此插件。它是 FANTASTIC Alphanumeric

您的问题的答案就像这个

一样简单
$('.numericInput').numeric({ichars:'0124578'});

来自作者方:

  

你有没有必要预防?   用户输入某些字符   进入你的形式?

     

查看可用的插件   jQuery,我发现了一个很棒的插件   Sam Collet打电话给Numeric。

     

但它太有限了,如果我是   要求用户创建用户名?   或者如果我需要输入一个数字怎么办?   带小数或IP地址?那里   是另一个名为Masked的好插件   乔什布什的投入,也可以   通过定义掩码来控制用户输入。   然而问题是   要插入的文本长度必须是   定义也是如此。再说一遍,如果我   需要控制用户名的输入?   我不知道有多少人物   用户将使用,我不能强迫   他只用了8个字符,所以我   创建了AlphaNumeric。

     

jQuery AlphaNumeric是一个javascript   控件插件,允许你   限制用户可以输入的字符   在文本框或textareas上。玩得开心。