如何限制文本字段内特殊字符的复制粘贴

时间:2014-12-30 10:27:15

标签: jquery html

我有以下代码,我必须限制字母和特殊字符

我已经这样处理了

<input type="text" id="mobile" placeholder="Phone Number" onkeypress="return isNumber(event)">

function isNumber(evt) {
        evt = (evt) ? evt : window.event;
        var charCode = (evt.which) ? evt.which : evt.keyCode;
        if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
        }
        return true;
            }

这工作正常,但我无法在文本字段中限制字母和特殊字符的复制粘贴

http://jsfiddle.net/vejjnjoj/1/

2 个答案:

答案 0 :(得分:0)

您可以过滤粘贴的结果。演示fiddle

function isNumber(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
    return false;
    }
    return true;
        }

function filterInput() {
var filtered = [];
setTimeout(function(){
    var data = document.querySelector('#mobile').value.split('');
    for (var i = 0; i < data.length; i++) {
        if (data[i] != ' ' && !isNaN(data[i])) {
            filtered.push(data[i]);
        }
     }
     document.querySelector('#mobile').value = filtered.join('');
 }, 100)

}

<input type="text" id="mobile" placeholder="Phone Number" onkeypress="return isNumber(event)" onpaste="filterInput()">

答案 1 :(得分:0)

您可以使用输入事件来调用keydown和粘贴事件以及过滤输入,如下所示:

$('input#mobile').on('input', function(key){
    // your filtration code
});

希望它有效!