简单的onkeydown +长度计数

时间:2011-07-01 11:11:23

标签: jquery

我在这里有一个非常简单的功能:

$('#input').keydown( function(e) {

    if( $(this).length === 8 ) { alert('We have a winner!'); }
    else { return false; }

});

它不起作用。为什么?任何帮助非常感谢。

LIVE EXAMPLE

4 个答案:

答案 0 :(得分:4)

假设您要检查#input的值的长度,则需要:

$(this).val().length

而不是$(this).length。您也可能希望摆脱return false;,因为这可能会阻止任何内容输入到输入字段中。

查看更新的小提琴here

单独注意,这仅在字段中已有8个字符且按下另一个键时才有效。这可能是你想要的方式,但我认为你可能想要keyup事件。

答案 1 :(得分:2)

$('document').ready( function(e){

    $('#input').keydown( function(e){


        if( $(this).val().length === 8 ) { 
            alert('We have a winner!');
        }



    });
});

使用val()首先获取事件触发的文本框的值,然后调用字符串的长度。

答案 2 :(得分:2)

请尝试使用keyUp,然后删除return false分支:

$(document).ready( function(e){
    $('#input').keyup( function(e){
        if( $(this).val().length == 8 ) { alert('We have a winner!');}
    });
});

答案 3 :(得分:1)

当你在包裹的集合中使用jquery中的.length时,它会为你提供从你的选择器匹配的元素数量:http://api.jquery.com/length/。你想要的是获得输入值的长度(.val()。length)。