sat*_*mar 5 html javascript css jquery
我不想允许在文本框中输入、复制和粘贴十进制值和字母表。我可以输入负值。但是负号(" - ") 应该总是在开头。请看下面的小提琴。在这个小提琴中它不允许十进制值和字母表。但是,如果我像这样复制并粘贴“22.50”,它将采用十进制值。我怎么能限制这个。
我的要求,
1) 只允许数字(正数和负数)。
2)“ - ”符号应在开头。不允许在中间或某处。
3) 字母甚至不应该允许复制粘贴。
4)我可以复制粘贴数字,如“2222”和“-2222”。但不是字符和小数。
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;
};Run Code Online (Sandbox Code Playgroud)
<input type="text" maxlength="10" id="myInput">Run Code Online (Sandbox Code Playgroud)
请帮我做这件事。
您可以使用 jquery 监听输入字段中的变化,如下所示
$('#myInput').bind('input', function(e) {
//handle the input text here
});
Run Code Online (Sandbox Code Playgroud)
如果您不想在字符串包含无效文本时不显示任何内容,可以将输入字段的值设置为空,如下所示
$("#myInput").val("");
Run Code Online (Sandbox Code Playgroud)
更新 :
这是演示
$('#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("");
}
});
Run Code Online (Sandbox Code Playgroud)
JSFiddle:http://jsfiddle.net/7XLqQ/99/