我有一个要求,我可以输入不超过100的数字(允许100)。此外,这些号码可以在开始时设置+
,-
,在结尾处设置%
。
我已经提出了以下功能来验证。然而,即使在经历了很多努力之后,我也无法解决为什么当我输入2位数时我无法输入%
符号。
例如:输入10后,我无法输入%
(Shift + 5)
我的职责:
$scope.checkInputValidation = function(event, value) {
var key = event.keyCode;
var currentcharacter = String.fromCharCode(key);
if (key === 91 || key === 187 || key === 189 || (15 < key && key < 19) || (35 <= key && key <= 40)) {
return;
}
if (isNaN(currentcharacter) && ((currentcharacter !== "%") || (currentcharacter !== "+") || (currentcharacter !== "-") || (currentcharacter !== ""))) {
if ((key !== 46) && (key !== 8)) {
event.preventDefault();
return false;
}
}
var formattedValue;
if (value.indexOf('%') !== -1) {
formattedValue = value.replace('%', "");
} else {
formattedValue = value;
}
if (!isNaN(currentcharacter)) {
if (parseInt(formattedValue + currentcharacter) > 100 || parseInt(formattedValue + currentcharacter) < -100) {
event.preventDefault();
return false;
}
}
}
我想知道原因以及我应该如何输入%
。
答案 0 :(得分:0)
currentcharacter
永远不会包含%
字符。您必须结合5
属性检查event.shiftKey
(53)的keyCode。
if(key === 53 && event.shiftKey) {
.. % pressed ..
}