javascript - 复制和粘贴时不允许在文本框中使用小数和文本值

标签 javascript jquery html css

我不想允许在文本框中输入、复制和粘贴十进制值和字母表。我可以输入负值。但是负号(“- ”)应该总是在开头。请看下面的 fiddle fiddle 。在这个 fiddle 中,它不允许十进制值和字母表。但是如果我像这样复制并粘贴“22.50”,它就会取十进制值。我该如何限制它。

我的需求,

1) 只允许数字(正数和负数)。

2) “-”符号应该在开头。中间或某处不允许。

3) 字母不应该允许甚至复制粘贴。

4) 我可以复制粘贴数字,如“2222”和“-2222”。但不是字符和小数。

FIDDLE

var input = document.getElementById("myInput");

input.onkeypress = function(e) {    e = e || window.event;
    var charCode = (typeof e.which == "number") ? e.which : e.keyCode;

    // Allow non-printable keys
    if (!charCode || charCode == 8 /* Backspace */ ) {
        return;
    }

    var typedChar = String.fromCharCode(charCode);

    // Allow numeric characters
    if (/\d/.test(typedChar)) {
        return;
    }

    // Allow the minus sign (-) if the user enters it first
    if (typedChar == "-" && this.value == "") {
        return;
    }

    // In all other cases, suppress the event
    return false;
};
<input type="text" maxlength="10" id="myInput">

请帮我做这件事。

最佳答案

您可以使用 jquery 来监听输入字段的变化

$('#myInput').bind('input', function(e) {
    //handle the input text here
});

如果您不想在字符串包含无效文本时不显示任何内容,可以将输入字段的值设置为空

$("#myInput").val("");

更新:

这是演示

$('#myInput').bind('input', function(e) {
var str = $("#myInput").val();
var dec = str.indexOf(".");
var first_char = str.charAt(0);
var isNumber = true;
var haveDecimal = false;

if (first_char == '-' || !isNaN(first_char)) {
    for (i=1; i<str.length; i++) {
        if(isNaN(str.charAt(i)) && str.charAt(i) != '.') {
            isNumber = false;
            break;
        }
    }
}
else {
    isNumber = false;
}

if(dec != -1 && isNumber) {
    str = str.substring(0, str.indexOf("."));
}

if (isNumber) {
    $("#myInput").val(str);
}
else {
    $("#myInput").val("");
}
});

JSFiddle:http://jsfiddle.net/7XLqQ/99/

关于javascript - 复制和粘贴时不允许在文本框中使用小数和文本值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35872217/

相关文章:

html - 如何将三个不同的段落垂直放在一个列表中?

php - 使用jquery检索子div的id?

Javascript:如何检查每个输入值是否重复到另一个输入值

javascript - SPAN 只显示部分 ID

javascript - 如何将 "ID"div 调用到特定位置

jquery - 使用 jQuery 切换多个元素类

javascript - 浏览器在繁重的工作量之前不应用样式

ajax - 为什么我的grails复选框onclick远程功能ajax调用显示更新错误?

javascript - 获取已解析的 XML 日期的子字符串

javascript - 客户端Javascript调用Postgresql存储过程