jQuery通过id绑定到元素

时间:2009-09-03 19:18:39

标签: jquery keyboard

我要做的是当在文本上按下 esc 键时 输入字段(id = txtSearch),一些代码将运行。

这是我的代码:

$(document).ready(function() { 
    $('#txtSearch').bind('keyup', function(e) { 
        var characterCode; // literal character code will be stored in this variable 
        if (e && e.which) { //if which property of event object is supported (NN4) 
            e = e; 
            characterCode = e.which; 
        } else { 
            characterCode = e.keyCode; 
        } 
        if (characterCode == 27)  //if esc key
        { 
            //do stuff 
        } 
    }); 
} 

它对我不起作用。但是,如果我改变那条线:

$('#txtSearch').bind('keyup', function(e) { 

with:

$(document).bind('keyup', function(e) { 
一切正常。但我不想将密钥与 esc 绑定到 整个文件......

关于如何仅将keyup与特定绑定绑定的任何建议 文本搜索元素? (或其包含div或其他东西)

谢谢!

6 个答案:

答案 0 :(得分:0)

我认为

$('input#txtSearch').bind('keyup', function(e) {

是您要寻找的行。

善,

答案 1 :(得分:0)

确保您的html包含id为txtSearch的元素。

如果您使用的是ASP.NET,则必须更改

$('#txtSearch').bind('keyup', function(e) { 

$('#<%= txtSearch.ClientID %>').bind('keyup', function(e) { 

以便jQuery获得完整生成的id。

答案 2 :(得分:0)

这对我有用:

$(function(){ 
    $('input').keydown(function(e){ 
        if (e.keyCode == 13) { 
            $(this).parents('form').submit(); 
             return false; 
        } 
    }); 
});  

答案 3 :(得分:0)

或者使用:

$('input[id=txtSearch]').bind('keyup', function(e) {

只是一个解决方法。

答案 4 :(得分:0)

我放弃了。我似乎无法找到一种方法将此事件仅附加到<​​strong> DOM 的特定元素。

所以,这是我的工作:

$(document).keyup(function(e) {
    if (e.target.id == "txtSearch") {
        var characterCode; // literal character code will be stored in this variable
        if (e && e.which) { //if which property of event object is supported (NN4)
            e = e;
            characterCode = e.which; //character code is contained in NN4's which property
        }
        else {
            characterCode = e.keyCode; //character code is contained in IE's keyCode property
        }

        if (characterCode == 27)  //if generated character code is equal to ascii 27 (if esc key)
        {
           //do stuff
        }

    }
});

答案 5 :(得分:0)

在调试器中检查$('#txtSearch').length或键入

javascript:alert($('#txtSearch').length); 

进入地址栏以确保它实际上正在选择一个元素。如果没有,您可以尝试在文本框中添加css类并使用$('.txtSearch')