如何在输入文本的第二个字符后插入连字符,并仅允许来自用户的数字

时间:2014-06-29 03:14:46

标签: javascript html5

用户必须使用内部文档编号填充输入。文档格式为00-0000(连字符后面有不同数量的字符。

可以是:00-000

OR:00-0000

OR:00-00000...0

我的问题:

  1. 如何仅在用户输入时自动插入此HYPHEN 号。

  2. 我的输入如何只接受来自用户的数字但是接受这个" - "     自动插入?

  3. 非常感谢。

3 个答案:

答案 0 :(得分:0)

以下是您的示例:

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
    $(document).delegate(".code","keydown",function(e) {
        if (
            $.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
            (e.keyCode == 65 && e.ctrlKey === true) ||
            (e.keyCode >= 35 && e.keyCode <= 39)) {
                return;
        }

        if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
            e.preventDefault();
        }

        if($(e.target).val().length == 2) {
            e.target.value = e.target.value + "-";
        }
    });
});
</script>
</head>
<body>
<input type="text" class="code" value="" />
</body>
</html>

答案 1 :(得分:0)

不使用外部库,我会将一个函数绑定到输入的onkeyup事件。该函数将根据正则表达式检查输入的值,仅允许所需的格式。如果最后一次按键与模式不匹配,则输入的值将是最后一个字符被截断。

该函数的第二个任务是在值长度等于2时立即添加连字符。

有很多关于如何在JavaScript中使用正则表达式的信息。谷歌肯定会帮助找到合适的教程。

答案 2 :(得分:0)

我不知道这是正确的解决方案,但你可以尝试一下。 HTML: -

<label>Enter Doc Number</label>
<input type="number" id="leading">
<input type="number" id="trailing">
<button onclick="getDocNumber()">DOC Numbers</button>

JavaScript的: -

function getDocNumber(){
        var leading = document.getElementById('leading').value;
        var trailing = document.getElementById('trailing').value;
        var docNO = leading + "-" + trailing;
        alert(docNO);
    }