我想在keyup事件中显示警告,但前提是密钥是字母或数字,而不是转移,标签等。
<input type='text' id='hi />
或除tab,shift,ctrl之外的任何键,输入
有谁知道怎么做?
答案 0 :(得分:33)
您必须将“keyup”事件附加到文本框并在事件检查中附加所需的keycodes:
$("#hi").bind("keyup", function(e) {
//on letter number
if (e.which <= 90 && e.which >= 48)
{
alert('hello');
}
});
答案 1 :(得分:12)
如果要检查键入的字符,keyup
是错误的事件。只有keypress
事件才能可靠地告诉您有关键入字符的任何信息。你可以这样做:
$("#hi").keypress(function(e) {
var charTyped = String.fromCharCode(e.which);
if (/[a-z\d]/i.test(charTyped)) {
alert("Letter or number typed: " + charTyped);
}
});
答案 2 :(得分:2)
此附加代码记录了小键盘中的数字,字符和数字:
document.querySelector(selector).addEventListener('keypress', function() {
if (e.which <= 90 && e.which >= 48 || e.which >= 96 && e.which <= 105) {
alert('keycode ' + e.which + ' triggered this event');
//do whatever
}
});
答案 3 :(得分:1)
<input id="textbox" type='text' id='hi />
$("#textbox").keypress(function (e){
if (e.which <= 90 && e.which >= 48)
{
alert('Letter or number click');
}
});
答案 4 :(得分:0)
<input type="text" id="hi" onkeypress="keyPress()" />
function keyPress(e){
var key, x = e || window.event; key = (x.keyCode || x.which);
if(key <= 90 && key >= 48){
alert("Key pressed");
}
}
答案 5 :(得分:0)
这就是onkeypress
事件的作用,仅当您按下产生值的键时才会触发。 MDN Docs。
答案 6 :(得分:0)
我从不喜欢验证键代码。我的方法是查看输入内容是否包含文本(任何字符),确认用户正在输入文本而没有其他字符。
$('#input').on('keyup', function() {
var words = $(this).val();
// if input is empty, remove the word count data and return
if(!words.length) {
$(this).removeData('wcount');
return true;
}
// if word count data equals the count of the input, return
if(typeof $(this).data('wcount') !== "undefined" && ($(this).data('wcount') == words.length)){
return true;
}
// update or initialize the word count data
$(this).data('wcount', words.length);
console.log('user tiped ' + words);
// do you stuff...
});
<html lang="en">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<input type="text" name="input" id="input">
</body>
</html>