第三个字符后的动作键

时间:2010-12-22 16:07:43

标签: javascript jquery

嗨,有人可以帮我弄清楚如何停止一个函数运行,直到按下特定数量的字符?

目前使用以下功能:

$('input#q').keyup

只要按任意键,这就行了......

5 个答案:

答案 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();
   }
} );