2017-04-03 50 views
0

我想处理代码时,用户键入@像facebook标记。当用户输入@abc,然后处理事件。这是我的代码:事件按键jquery当匹配一个特殊字符

$("#content").keypress(function(e) { 
      var tmp = $("#content").val(); 
      if(tmp =="@") 
      { 
      console.log("It working"); 
      } 
     }); 

UPDATING

这样的代码:

$("#content").keypress(function(event) { 
      var tmp = $("#content").val(); 
      if(tmp.indexOf('@') !== -1) 
      { 
      console.log("It's working"); 
      } 
     }); 

它的工作,当我与任何系统字符输入@,但是当我键入(空间),它也工作,我尝试停止事件时,用户输入(空间)后,在任何东西。

+1

使用'keyCode'来检查是否按下某个键。 [jQuery:如果键“someKey”按下](// stackoverflow.com/q/8573795) – Tushar

+1

不应该是tmp ==='@abc'如果你正在检测@abc? – SCLeo

+0

[触发@mention自动填充如Facebook,Twitter和Google +](// stackoverflow.com/q/9870650)和[Twitter/Facebook \ @mention功能与​​jQuery](// stackoverflow.com/q/6487625) – Tushar

回答

1

最好的解决办法是:

$("#content").keypress(function(e) { 

    if (e.which == 64) { 
     console.log("It working"); 
    } 
}); 

希望它可以帮助!!!!!!

+0

是的,这是工作,这么简单! –

0

它的工作很好,因为条件是:

if(tmp == "@") 
{ 
    console.log("It working"); 
} 

它匹配只@。如果你想匹配类似@abc@def组合样的字符串,然后使用REGEX

+0

我正在更新我的问题,谢谢! –

0

在这里,我让fiddle

$("#content").keypress(function(e) { 
      var tmp = $("#content").val(); 
      if(tmp.charAt(0) ==="@") 
      { 
      console.log("It working"); 
      } 
     }); 
+0

我正在更新我的问题,谢谢! –

0

这里更新工作codepen。 您每次需要使用valuestring.charAt(0)。此

+0

我正在更新我的问题,谢谢! –

+0

@LucyVo我已更新codepen。请现在检查,这可能会帮助 –