jjzjj

javascript - 使用特定的 keyCode 测试 Jasmine 中的按键事件

我正在为触发事件的AngularJS指令编写测试当某些键被按下时。根据我的手动测试,一切正常。我想成为一名优秀的人,也想拥有一个完整的单元测试套件,但我遇到了一个我自己无法解决的问题:我想发送一个具体的keyCode在我的triggerHandler()在我的测试中调用,但我找不到一种方法来指定实际有效的键。我知道很多关于使用特定数据构建和发送事件的主题的问题和答案,但它们都不适用于我的设置:我的设置Karma测试运行器运行测试的PhantomJS浏览器(但也尝试过Firefox和Chrome但没有成功)我没有使用jQuery,我希望有一个常规的JS解决方案。一定有!测试代码varev

javascript - AngularJS:在每次按键时使用动态 ng-model 模糊更新输入

jsFiddle演示问题:http://jsfiddle.net/yoxigen/xxTJc/我正在构建一个小表单来编辑一个对象的所有属性。为此,我有一个用于属性的中继器。每个属性都有其输入:{{value}}每次在输入中按下一个键时,它旁边的值都会正确更新,但输入会失去焦点。知道如何解决这个问题吗? 最佳答案 IwishtherewasawaytopostponetheregenerationuntilI'mdoneediting.你也许可以做到这一点。只需制作一个自定义指令即可消除AngularJS事件并改为收听“更改”。以下是

javascript - 只捕捉改变输入的按键?

我想在按键更改文本框的输入时执行某些操作。我认为keypress事件最适合这个,但我怎么知道它是否引起了变化?我需要过滤掉诸如按箭头键或修饰符之类的东西...我认为对所有值进行硬编码并不是最好的方法。那我应该怎么做呢? 最佳答案 在大多数浏览器中,您可以使用HTML5input文本类型事件元素:$("#testbox").on("input",function(){alert("Valuechanged!");});这在IEpropertychange事件。$("#testbox").on("propertychange",func

javascript - 是否可以在 JavaScript 中覆盖按键重复延迟?

目标是手动设置按住键的“重复率”。例如,当在文本框中按住X键时,我了解到有browser-specificwaysofrepeatingthepressedcharacter.在某些情况下,它会暂停,然后连续触发按下的键。在其他情况下,它根本不会重复。我想通过强制按特定时间间隔重复按下的键来缓解这种情况,而不管浏览器是什么。通过研究,我想出了一个基于定时器的尝试,但是在Safari中,它不会重复字符。我有一个菜单系统,其中按住箭头滚动列表,但翻译动画和重复率不一样。varrepeating=false;varrepeatRateTimer=null;$(document).bind('

javascript - 在 jQuery 按键事件上获取输入文本值

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:jQuerygetinputvalueafterkeypress我试图在jQuery.keypress()函数上获取一个inputtext值。我见过各种使用keypress和keydown的示例,但并不专门用于获取输入值。可能吗?$(document).ready(function(){$("#my_field").keydown(function(e){alert(e);});});返回的对象有一系列的属性,但是我还没有看到值输入字段属性的东西。有什么办法可以得到吗?

javascript - 在 Jasmine 中模拟假按键

我正在尝试在Jasmine中模拟按键(测试浏览器是PhantomJS),这样我就可以对使用按键的一些函数进行单元测试。不幸的是,我无法使用Jasmine对其进行正确测试,因为我遇到了错误。这是我要测试的代码:functionControls(){'usestrict';this.codes={37:'left',39:'right',38:'forward',40:'backward'};this.states={'left':false,'right':false,'forward':false,'backward':false};document.addEventListener(

javascript - Twitter bootstrap typeahead 自定义按键 ENTER 功能

我在我正在制作的Django网站上使用Twitterbootstrap。我有一个页面,用户可以在其中输入他们所有的技术技能,这些文本输入配备了bootstraptypeahead。我正在尝试访问下拉菜单中当前选定的文本,这样当按下ENTER并在下拉列表中突出显示一个元素时,它会采用该值并将其显示在输入文本字段下方。然后输入文本字段被清除,用户可以搜索另一个技能。$(document).keyup(function(event){if(event.keyCode==13){if($('.dropdown-menu').css('display')!='none'){varnewskill

javascript - 按键事件发生后如何获取文本光标位置?

我正在写一个语法荧光笔。荧光笔应在输入文本和使用箭头键导航时立即更新突出显示。我面临的问题是,当'keypress'事件被触发时,您仍然可以通过window.getSelection()获得文本光标的旧位置。例子:functionhandleKeyEvent(evt){console.log(evt.type,window.getSelection().getRangeAt(0).startOffset);}vardiv=document.querySelector("div");div.addEventListener("keydown",handleKeyEvent);div.ad

javascript - 如何禁用 jQuery 中的重复按键

这个问题在这里已经有了答案:PreventJavaScriptkeydowneventfrombeinghandledmultipletimeswhilehelddown(8个答案)关闭6年前。当用户按住某个键时,我希望keydown()事件只被调用一次,但它会一直调用到用户停止按下该键为止。这是我正在尝试做的事情:$(document).keydown(function(event){varkeycode=(event.keyCode?event.keyCode:event.which);if(keycode=='39'){$("#box").animate({"left":"+=3

javascript - 在 knockoutjs 上绑定(bind)按键事件,可观察到的未填充

需要一些关于knockoutjs和绑定(bind)按键事件的帮助。我正在尝试连接knockout,以便我从文本框中选择回车键。所以我可以执行与单击按钮相同的操作。解释起来有点棘手,但希望这个JsFiddle能展示我正在努力实现的目标。http://jsfiddle.net/nbnML/8/我遇到的问题是可观察值没有得到更新,我认为这与焦点从文本框移开之前未更新的可观察值有关吗?这个问题的任何解决方案。谢谢! 最佳答案 一个选项是使用valueUpdate附加绑定(bind)来强制更新每个按键。例如,你会这样做:如果这不是您想要的,那