Javascript JQuery:Keypress在第一次按下时不工作
这是我的密码Javascript JQuery:Keypress在第一次按下时不工作,javascript,jquery,Javascript,Jquery,这是我的密码 $(currentClass).keypress(function (e) { if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) { return false; } }); $(currentClass).按键(功能(e){ 如果(e.which!=8&&e.w
$(currentClass).keypress(function (e) {
if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
return false;
}
});
$(currentClass).按键(功能(e){
如果(e.which!=8&&e.which!=0&&e.which<48 | e.which>57)){
返回false;
}
});
唯一的问题是,每次我第一次按一个键,不管是字母还是数字,它都会显示在我的内容可编辑span标记中。然而,当我第二次按字母键时,代码工作,它只接受数字。在第一次按键时,我不知道这段代码有什么问题。使用JQuery的.on()
方法
$(currentClass).on("keypress",function (e) {
if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
return false;
}
$(currentClass).on(“按键”,功能(e){
如果(e.which!=8&&e.which!=0&&e.which<48 | e.which>57)){
返回false;
}
})) 把你的事件妥善地捆绑起来
$(文档).ready(函数(){
$(正文).on(“按键”,“当前类”,函数(e){
如果(e.which!=8&&e.which!=0&&e.which<48 | e.which>57)){
返回false;
}
});
});
$(currentClass).on('keypress',函数(e){
如果(e.which!=8&&e.which!=0&&e.which<48 | e.which>57)){
e、 预防默认值();
警惕(“按下”);
返回false;
}
});
这可能会对您有所帮助:)这是我使用的
if ($.inArray($event.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
// Allow: Ctrl+A
($event.keyCode == 65 && $event.ctrlKey === true) ||
// Allow: home, end, left, right
($event.keyCode >= 35 && $event.keyCode <= 39)) {
// let it happen, don't do anything
return;
}
// Ensure that it is a number and stop the keypress
if (($event.shiftKey || ($event.keyCode < 48 || $event.keyCode > 57)) && ($event.keyCode < 96 || $event.keyCode > 105)) {
$event.preventDefault();
}
if($.inArray($event.keyCode,[46,8,9,27,13,110,190])!=-1||
//允许:Ctrl+A
($event.keyCode==65&&$event.ctrlKey==true)||
//允许:起始、结束、左、右
($event.keyCode>=35&&$event.keyCode您好,当我在另一个项目上尝试它时,它可以工作,但是当我在Angular和Jquery混合的项目中使用它时,它仍然与我的代码相同。Angular.js的示例:谢谢!我能够找到另一个解决方案。这个解决方案可以工作,但不适用于我正在做的应用程序。@PipeMan如果您有answer请分享。:)谢谢!!嗨!我已经发布了一个答案,请浏览该线程。再次感谢!这是旧的,但我想把它扔出去,我在使用.keypress时遇到了问题,不得不切换到类似下面使用.on语法的解决方案。
$(currentClass).on('keypress', function (e) {
if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
e.preventDefault();
alert("pressed");
return false;
}
});
if ($.inArray($event.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
// Allow: Ctrl+A
($event.keyCode == 65 && $event.ctrlKey === true) ||
// Allow: home, end, left, right
($event.keyCode >= 35 && $event.keyCode <= 39)) {
// let it happen, don't do anything
return;
}
// Ensure that it is a number and stop the keypress
if (($event.shiftKey || ($event.keyCode < 48 || $event.keyCode > 57)) && ($event.keyCode < 96 || $event.keyCode > 105)) {
$event.preventDefault();
}