嗨,有人可以帮我弄清楚如何停止一个函数运行,直到按下特定数量的字符?
目前使用以下功能:
$('input#q').keyup
只要按任意键,这就行了......
答案 0 :(得分:13)
这样的事情应该在添加3个字母后开始激活代码:
<强> Live Example 强>
的JavaScript
$('input#q').keyup( function() {
if( this.value.length < 4 ) return;
/* code to run below */
$('#output').val(this.value);
});
HTML
<input id="q" />
<br /><br />
<input id="output"/>
答案 1 :(得分:2)
每次按下某个键时,您都可以将字符存储在字符串变量中,然后运行条件语句来检查变量的长度。如果它等于3,则运行任何函数
答案 2 :(得分:1)
$('input#q').keyup(function(){
if($(this).val().length > 3)
{
//do something
}
});
答案 3 :(得分:0)
你可能需要考虑焦点变化的方式。当你重新关注这个领域时,你想要清除计数器吗?您还应该决定是否计算实际添加到字段中的字符,或者如果您想要实际离散键按下 - 例如,“移位”键按下不会添加任何字符,但它是关键是按压。
无论如何它可能是这样的:
$(function() {
var keyCount = 0;
$('#q').keyup(function() { // "keypress" to count characters
if (++keyCount === 3) {
// do the thing
}
})
.focus(function() {
keyCount = 0; // if this is what you want
});
});
如果您计算“keypress”事件而不是“keyup”,则可能需要计算文本字段值的实际长度,而不是尝试计算事件。
答案 4 :(得分:0)
怎么样:
var c = 0;
('input#q').keyup( function() {
c++;
if (c >= 3) {
startGame();
}
} );