标签: keyup

jQuery keypress,keydown,keyup black magic(Macs)背后的理论是什么?

我对keypress,keydownkeyup的各种行为感到困惑.似乎我错过了一个重要的文档,一个解释了这个三重奏的细微之处和细微差别.有人可以帮我弄清楚我需要阅读哪个文件才能更有效地使用这些事件吗?如果您需要详细信息,请参阅下文.

@ov:你让我展示一些代码,但这并不是我试图解决的代码中的特定问题.我正在尝试处理这些事件处理程序的行为,并要求了解它们的人指出一个好的文档.

我使用jQuery构建输入表单并将其插入到我的文档中.它工作得很好,大多数情况下.我希望表单像我在其中看到的大多数其他输入表单一样响应键盘:esc键应该忽略表单与单击取消按钮相同,并且因为表单上有一个<textarea>,cmd+ enter应该与单击时相同确定按钮.使用按键事件似乎很简单.问题是Chrome不会为密钥或+ 调用我的按键处理程序.它会激发+ 和+ 以及字母数字,但不是+ .esccmdenterctrlenteroptionentercmdenter

所以我会改用密钥.我得到KEYUPesc,和KEYUPcmd,和KEYUPenter,伟大的.但我没有得到KEYUPenter,而我按住键cmd.

第三次是魅力,你可能会认为keydown似乎工作,但有了keydown,你会得到重复键.我知道,你所要做的就是在第一次调用时解除处理程序的绑定,但三种不同的事件类型表现得如此不同似乎很奇怪.为什么是这样?那里有一个明显的文件,我显然还没读过吗?

macos jquery keypress keydown keyup

49
推荐指数
2
解决办法
3万
查看次数

按空格键后执行JS代码

这是我在JavaScript中的代码:

var changeIdValue =  function(id, value) {
document.getElementById(id).style.height = value;
};

document.getElementById ("balklongwaarde").addEventListener("click", function(){ changeIdValue("balklongwaarde", "60px")});

document.getElementById ("balklevensverwachting").addEventListener("click", function(){ changeIdValue("balklevensverwachting", "60px")});

document.getElementById ("balkhart").addEventListener("click", function(){ changeIdValue("balkhart", "60px")});

document.getElementById ("balklever").addEventListener("click", function(){ changeIdValue("balklever", "60px")});

document.getElementById("balkhersenen").addEventListener("click", function(){ changeIdValue("balkhersenen", "60px")});
Run Code Online (Sandbox Code Playgroud)

我想在按下键盘后执行此代码....

有谁有想法怎么样?

javascript keyup

17
推荐指数
4
解决办法
5万
查看次数

jquery keyup函数检查数字

我正在尝试创建一个输入字段,用户只能输入数字.这个功能对我来说已经很好了:

        $('#p_first').keyup(function(event){
        if(isNaN(String.fromCharCode(event.which))){
            var value = $(this).val();

            $(this).val(value.substr(0,value.length-1));
        }
    });
Run Code Online (Sandbox Code Playgroud)

但问题是,当用户持有带有角色的键时,功能键盘没有触发....任何想法我怎么能禁止这个?

jquery function character keyup

14
推荐指数
3
解决办法
7万
查看次数

jQuery - 在用户输入或粘贴时更改文本

我是jQuery的新手,我试图制作一些东西,但我失败了所以这是我的问题,当用户键入它的工作,但当用户粘贴的东西不起作用!

$(document).ready(function(){

        $('#username').keyup(username_check);
});
Run Code Online (Sandbox Code Playgroud)

username_check函数:

function username_check(){  
var username = $('#username').val();
if(username == "" || username.length < 4){
alert("error");
}
Run Code Online (Sandbox Code Playgroud)

场 :

<input type="text" id="username" name="username" required>
Run Code Online (Sandbox Code Playgroud)

jquery text keyup

14
推荐指数
2
解决办法
2万
查看次数

绑定(keyup)到jQuery中的动态元素(Twitter Bootstrap + typehead)

我想你们中的一些人必须皱起眉头读这个标题呃?我相信人们每次都会问这个问题,但是,我还没有看到我的特殊问题,我正在努力!将事件绑定到动态创建的元素是我的kryptonite,我只是无法绕过它...

好吧,我正在使用带有typehead()插件的Twitter Boostrap.我正在使用这个技巧使其与远程数据源一起工作.此时,一切正常.我单击表单中的文本输入,为其标记,脚本将加载外部源并显示下拉列表.但我有动态元素创建,你已经想到,它只是不会对它们起作用.我正在探索live()方法,但看看脚本被解雇的"方式",我只是不确定如何实现它.

$('#anInputField').typeahead().on('keyup', function(ev){
 // stuff happens
});
Run Code Online (Sandbox Code Playgroud)

每次有密钥时,脚本都会触发一个jSON请求,检查他的东西,并将结果返回给执行作业自动完成部分的typehead().那么我怎么能说jQuery来看看初始绑定后创建的#aDropdownID呢?我继续检查我是否可以使用live(),但是因为on()替换它...我很无能为力!

任何帮助赞赏!

jquery twitter-bootstrap keyup jquery-events

13
推荐指数
2
解决办法
7万
查看次数

当Cmd⌘键按下时,NSResponder未收到keyUp事件

我正在使用NSView的自定义子类并通过keyDown/keyUp方法接收键盘事件,一切正常,除非按下"Cmd⌘"键,keyDown事件正常触发,但keyUp事件永远不会到来.

在我们的例子中,我们使用自己的箭头键向左/向右/向上/向下移动图像,如果用户在按住左/右按住"Cmd⌘"的同时,它将旋转图像.由于我们得到了keyDown事件,因此图像开始旋转,但它永远不会因为keyUp永远不会停止而停止.其他修饰符没有这个问题(例如,如果按住shift,ctrl或alt而按下另一个键,我们会按预期获得keyUp).一种选择是使用不同的修饰符,但保持它与PC版本一致会很好(Cmd用作Windows上使用Ctrl时的替代,使其与标准复制/粘贴命令保持一致等).

有谁知道为什么这样做?感觉就像一个bug,但可能只是奇怪的"正确行为",任何想法如何绕过它(除了使用替代修饰符或使用直接HID访问之类的东西).

谢谢.

macos cocoa nsview nsresponder keyup

12
推荐指数
1
解决办法
976
查看次数

jQuery:移动设备的keyup事件

我有一些问题要在我的iPhone上启动一个keyup事件,我的代码如下:

        var passwordArray = ["word", "test", "hello", "another", "here"];

        var test = document.getElementById('enter-password');
        test.addEventListener('keyup', function(e) {

            if (jQuery.inArray(this.value, passwordArray) != -1) {
                alert("THIS IS WORKING");
            } else {}

        });
Run Code Online (Sandbox Code Playgroud)

这个想法是,当用户输入#enter-password字段时,当他们匹配passwordArray警报中的单词时,将触发.这适用于桌面,例如,一旦你输入word该功能,一旦你输入该功能就会立即开火d.反正有没有让它适用于移动设备?

javascript mobile jquery click keyup

12
推荐指数
2
解决办法
2万
查看次数

特定键的keydown + keyup事件

当按下某些键时,我正在尝试使背景颜色发生变化.例如,当按住"r"键时,背景应为红色.当'r'键不再被按下时,背景应默认为白色.

$(document).ready(function () {
    $('body').keydown(function(e){
        if(e.keyCode == 114){
            $(this).css({'background':'red'});  
        }
        if(e.keyCode == 121){
            $(this).css({'background':'yellow'});
        }
    });
    $('body').keypress(function(e){
        if(e.keyCode == 114){
            $(this).css({'background':'red'});  
        }
        if(e.keyCode == 121){
            $(this).css({'background':'yellow'});
        }
    });
    $('body').keyup(function(e){
        if(e.keyCode == 114){
            $(this).css({'background':'white'});
        }
        if(e.keyCode == 121){
            $(this).css({'background':'white'});
        }
    });

});
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是密钥不是专门针对每个密钥工作的.

    $('body').keyup(function(e){
        $(this).css({'background':'white'});
    });
Run Code Online (Sandbox Code Playgroud)

我知道如果我完全从keyup中删除if条件,那么它将表现我说我想要它的方式 - 但我希望以后能够使用具有特定键的keyup做不同的事情.例如,当只释放'b'键时,它可能会在屏幕上显示"你刚刚发布了b键!".如何跟踪特定键的keydown和keyup事件,并为每个键发生不同的事情?我知道这也不是很有组织(我对这些东西很新)所以如果有一个完全不同的更好的方法来做这个...

javascript jquery keypress keydown keyup

11
推荐指数
1
解决办法
2万
查看次数

想限制韩国人和中国人

我需要在lang的基础上限制输入框内容.输入.

例如: - 如果输入韩语字符,则允许的字符数为8.如果输入汉字则不然.允许的字符是5.如果英语然后12 ..

我的代码适用于IE,Firefox和Chrome中的英文字符,但它不适用于韩文和中文,即使我提高了有效长度,也总是将字符串长度减少到2.请尽快建议一些解决方案.

我正在粘贴我的代码进行检查.

<!DOCTYPE html>
<html>
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <script>
            document.onkeydown=function() {


                    var text = $('#lang').val();
                    var hangul = new RegExp("[\u1100-\u11FF|\u3130-\u318F|\uA960-\uA97F|\uAC00-\uD7AF|\uD7B0-\uD7FF]"); 
                    var china = new RegExp("[\u4E00-\u9FFF|\u2FF0-\u2FFF|\u31C0-\u31EF|\u3200-\u9FBF|\uF900-\uFAFF]"); 

                // alert(hangul.test(text));
                    if(hangul.test(text))
                    {
                        limit = 8; 
                        //console.log("korean");
                        limitCharacters('lang', limit , text);

                    }else if(china.test(text))
                    {
                        limit = 5; 
                        //console.log("china");
                        limitCharacters('lang', limit , text);

                    }else {
                        limit = 11; 
                        limitCharacters('lang', limit , text);

                    }
         };

        function limitCharacters(textid, limit, text)
        {
          //alert('here in limit funt.');
          var textlength = text.length;
           //alert(textlength);
          if(textlength > limit …
Run Code Online (Sandbox Code Playgroud)

html javascript keyup

9
推荐指数
1
解决办法
2641
查看次数

iOS 9 - 键盘事件未触发

是否有其他人keyup在iOS 9 中遇到问题没有解雇?

只是一个简单的测试床为我复制了这个问题.

<input id="txtInput" />
Run Code Online (Sandbox Code Playgroud)

香草JS:

document.getElementById('txtInput').onkeyup = function () {
    console.log('keyup triggered');
}
Run Code Online (Sandbox Code Playgroud)

jQuery的:

$('#txtInput').on('keyup', function () {
    console.log('keyup triggered');
});
Run Code Online (Sandbox Code Playgroud)

既不火......

javascript jquery onkeyup keyup ios9

9
推荐指数
1
解决办法
8716
查看次数