草庐IT

javascript - 为什么我可以使用 Javascript 在 keydown 而不是 keyup 上阻止默认事件?

使用.keydown时我可以捕获按键事件,然后检查并防止默认操作(显示字符)。使用.keyup时我不能?我知道事件被捕获为alert()当代码在条件内但preventDefault()时触发不会阻止操作。这是完整的DEMO 最佳答案 在keyup事件中,字符已被输入且无法撤消,但在keydown中,没有输入任何内容,浏览器有intent键入字符,以便您可以取消浏览器意图。每当您键入一个字符时,都会发生以下事件:keydown-->keypress重复直到释放键-->keyupkeydown->可以阻止->当按下一个键时触发keypr

javascript - JQuery,将相同的函数绑定(bind)到 3 个不同的文本框的 keyup 事件

我有3个文本框,在所有3个的keyup事件中,我想调用相同的函数?在下面的代码中,我试图将keyup事件绑定(bind)到CalculateTotalOnKeyUpEvent函数到名为compensation的文本框,但它没有工作:$("#compensation").bind("keyup",CalculateTotalOnKeyUpEvent(keyupEvent));functionCalculateTotalOnKeyUpEvent(keyupEvent){varkeyCode=keyupEvent.keyCode;if(KeyStrokeAllowdToCalculateRe

javascript - Jquery:过滤按键输入

我有一个文本字段,它将只接受以下字符:允许的字符:[a-z0-9+#-.]这与您提问时SO在“标签”字段中所做的相同。如果用户键入无效字符,我希望当前文本字段值保持不变。我试过:$('#post_tags').keypress(function(event){varchar=String.fromCharCode(event.which)vartxt=$(this).val()if(!txt.match(/[^A-Za-z0-9+#-\.]/)){$(this).val(txt.replace(char,''));}})为什么它不起作用?谢谢! 最佳答案

javascript - 在 iframe 中捕获所有 keyup/keydown 事件?

我正在开发基于Canvas的游戏,并使用window.addEventListener()全局附加keyup和keydown事件。这在正常查看页面时有效,但在将其作为iframe嵌入时有效;它没有获取keyup和keydown事件。有没有更好的方法可以做到这一点? 最佳答案 你不能,除非框架有焦点。你可以做的是在外部窗口上按下键使iframe聚焦,或者总是以某种方式聚焦iframe,或者默认聚焦iframe(可能足够好,不确定你在做什么)但要使窗口keydown在该框架需要焦点的任何窗口(框架或非框架)上触发。

javascript - 输入 @keyup 事件在 Vue 中不起作用

我正在尝试调用按回车键的方法,但它不起作用。代码如下。Clickexportdefault{methods:{callEvent(){console.log("Eventcalled");}}} 最佳答案 click事件已经通过ENTER键触发(它在某些浏览器中也通过Space触发,例如桌面版Chrome)。因此,您的代码只需要一个@click="callEvent"并且一切正常,因为焦点已经在按钮上:varapp=newVue({el:"#app",methods:{callEvent(){console.log("Eventca

javascript - jquery keyup 不工作

出于某种原因,当我向各种输入添加一个类时(在用户按下提交后),此函数不会记录在这些输入中进行的按键操作。我一定是在做一些根本性的错误,因为我已经尝试过$('incomplete_required').keyup(){}和下面的内容,看起来像.on()更现代..$(document).ready(function(){$('.incomplete_required').on("keyup",function(){console.log('keyed');});});我做错了什么?谢谢 最佳答案 如果您正在动态更改dom中的元素-最好将

javascript - 在日文输入中输入 keyup 事件

我有一个输入字段,我正在其上监听keyup事件。我使用日文输入法开始输入字符,但事件没有被触发;这是预期的,因为输入字符正在转换为平假名,并且会出现一个下拉列表,以便用户可以选择它们的片假名或汉字版本。当用户键入字符时,字符会显示为下划线,用户可以通过按enter来选择它的选项(假名/汉字)。之后,文本不再带有下划线,并“提交”到输入文本。此行为符合输入法的预期工作方式。但是,在提交文本之前,我不希望收到任何keyup事件(即便如此,我也希望没有keyup的更改事件),因为enter是输入法工作方式的一部分。我正在监听keyup事件,因为我需要在用户释放回车键时触发一个Action。我

javascript - event.key 在移动浏览器中对于 keyup、keydown 和 keypress 是未定义的

下面的代码应该简单地抑制任何按键并将按下的键添加到一个div中。这在桌面上运行良好,但在移动设备(safari和chrome)上event.key未定义。varstr='';varel=document.getElementById('#test');document.addEventListener('keypress',function(event){str+=event.key;event.preventDefault();el.innerHTML=str;})event.keyCode和event.keyIdentifier都可用,但将它们转换为字符串会在不同的键盘布局和语言上

javascript - 如何使用 * 屏蔽 keyup 上的前五位数字

例如,当我输入我的ssn号码时,我的前5天必须被屏蔽为*123456789=>*****6789注意:在keyup上它应该检查没有数字和基于它的掩码。我是通过下面的例子来的。它屏蔽了整个九位数字。https://codepen.io/anon/pen/VROrdo 最佳答案 我修改了您的代码以屏蔽前5个字符。如果有人粘贴复制的号码,这也是防弹的。https://codepen.io/anon/pen/PLvRWw//Replacefirst5numberswithastericksif(displayVal.length

javascript - jQuery keyup 事件滞后于用户输入

我有一个文本框,用户只能在其中输入数字数据。我在文本框的keyup上使用以下函数:$('#ssn').keyup(function(){varval=this.value.replace(/\D/g,'');this.value=val;});我遇到的问题是当用户按下受限键时出现滞后,该字符会显示片刻,然后被空字符串替换。按住一个键将在框中显示一串字符,直到释放该键为止。有没有办法防止这种行为?我尝试过不同的键盘事件,如keydown或keypress,但它们的表现似乎并没有更好。这是问题的一个fiddle:https://jsfiddle.net/oxpy96g9/