Javascript 第三个字符后的动作键控

Javascript 第三个字符后的动作键控,javascript,jquery,Javascript,Jquery,嗨,有人能帮我找出在按下特定字符数之前如何停止函数运行吗 当前正在使用以下功能: $('input#q').keyup 只要您按下任何键,该功能就会工作。您可以在每次按下键时将字符存储在字符串变量中,然后运行条件语句检查变量的长度。如果它等于3,则运行任何函数。您可能需要考虑焦点变化的方式。是否要在字段新聚焦时清除计数器?您还应该决定是否要计算实际添加到字段中的字符,或者如果您想计算,可以使用实际的离散按键-例如,“shift”键不会添加任何字符,但它是一个正在按下的键 无论如何,它可能是这样

嗨,有人能帮我找出在按下特定字符数之前如何停止函数运行吗

当前正在使用以下功能:

$('input#q').keyup

只要您按下任何键,该功能就会工作。

您可以在每次按下键时将字符存储在字符串变量中,然后运行条件语句检查变量的长度。如果它等于3,则运行任何函数。您可能需要考虑焦点变化的方式。是否要在字段新聚焦时清除计数器?您还应该决定是否要计算实际添加到字段中的字符,或者如果您想计算,可以使用实际的离散按键-例如,“shift”键不会添加任何字符,但它是一个正在按下的键

无论如何,它可能是这样的:

$(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”,则可能需要计算文本字段值的实际长度,而不是尝试计算事件数。

关于:

var c = 0;
('input#q').keyup( function() {
   c++;
   if (c >= 3) {
      startGame();
   }
} );
你可以做:

$('input#q').keyup(function(){
  if($(this).val().length > 3)
  {
    //do something
  }
});

在添加3个字母后,类似这样的内容应该会启动代码:

JavaScript

$('input#q').keyup( function() {
   if( this.value.length < 4 ) return;
   /* code to run below */
   $('#output').val(this.value); 
});
$('input#q').keyup(函数(){
如果(this.value.length<4)返回;
/*要在下面运行的代码*/
$('#output').val(this.value);
});
HTML





请注意,所涉及的字段是一个输入字段,因此浏览器已经“将字符存储在字符串中”-输入值!是的,我错过了原始代码中的输入目标,并认为这可能是某种离散检测-下次我会仔细看看:P
<input id="q" />
<br /><br />
<input id="output"/>