我在这里有一个非常简单的功能:
$('#input').keydown( function(e) {
if( $(this).length === 8 ) { alert('We have a winner!'); }
else { return false; }
});
它不起作用。为什么?任何帮助非常感谢。
答案 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)。