我需要避免在文本类型输入字段中输入数字。我的应用程序仅在iPhone和Android等设备上使用。
我尝试使用以下代码:
$("#custName-info").keypress(function (event) {
alert(event.charCode);
var inputValue = event.charCode;
if (!(inputValue >= 65 && inputValue <= 120) && (inputValue != 32 && inputValue != 0)) {
event.preventDefault();
}
});
此处,该代码在iPhone上可以正常使用,但在Android设备上不起作用。在进行调查时,我发现了以下信息:
keyup, keydown, input, change
charCode
来标识数字输入。keyCode
上有东西,但是我不明白charCode
和keyCode
有什么区别因此,我对这个问题的最后一句话是:“如何防止用户在文本字段中输入数字?iPhone和Android设备中使用的Web应用程序”。
答案 0 :(得分:3)
这对您有用吗?
$("#custName-info").on("input",function(event) {
var inputValue = this.value;
console.log(inputValue);
this.value = this.value.replace(/[0-9]/g,"")
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<input type="text" id="custName-info" />
请访问https://bugs.chromium.org/p/chromium/issues/detail?id=118639#c283
无效的原始答案:
按照我的建议,我用keypress
替换了keydown
,用charCode
替换了which
JavaScript KeyCode vs CharCode
FIDDLE-仍可在iOS中使用
$("#custName-info").on("keydown",function(event) {
var inputValue = event.which;
console.log(inputValue);
if (!(inputValue >= 65 && inputValue <= 120) && (inputValue != 32 && inputValue != 0)) {
event.preventDefault();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<input type="text" id="custName-info" />