【问题标题】:Upon attaching EasyAutocomplete to input box, it loses focus将 EasyAutocomplete 附加到输入框后,它失去焦点
【发布时间】:2019-07-21 10:25:09
【问题描述】:

我正在使用 EasyAutocomplete,它运行良好,我面临的唯一问题 - 连接 EasyAutocomplete 时输入框失去控制。

我希望在用户输入 2 个字符后激活 EasyAutocomplete。
当我输入 1 个字符时,没有任何需要发生,但在输入第 2 个字符后,EasyAutocomplete 必须附加并应该开始工作。但是,发生的情况是我必须在输入框之外单击才能使事情发生。
只是这个“外部点击”,我必须做这个插件才能工作,对我来说是个问题。
我也尝试过input 事件,但我没有按要求工作。
change 事件似乎很适合我的要求。
我该如何解决这个问题?

var ib = $("#inputbox");

$(document).on("keyup", ib,function(e) {
leng = ib.val();
 });


$(document).on("change", ib,function(e) {    
if(leng.length < 2){
       #do something      
 }else{
       ib.easyAutocomplete(options);
  }
 });

【问题讨论】:

  • va 中的va.val() 是什么?
  • @RomainB。 : 抱歉,打错了,已更正,请看修改后的代码块。

标签: javascript jquery easyautocomplete


【解决方案1】:

首先你应该通过“keyup”来改变“change”

第二个长度不会更新,因为你把它放在事件之外

最后,如果您希望此事件仅在此元素上触发,则文档上的事件可能不是最好的,请通过您的元素更改文档

$("#inputbox").on("keyup", ib,function(e) {
   if($("#inputbox").val().length < 2){
      #do something      
   }else{
      ib.easyAutocomplete(options);
   }
});

【讨论】:

  • 感谢您的回复,先生。我之前没有发布完整的代码,我现在已经发布了几乎所有相关的东西。我已经在使用keyup 来计算leng,您能否再次检查编辑并建议我是否应该进行一些更改。
  • 如果不使用change,输入的更改将无法正确反映。起初,我单独使用keyup,但它不能正常工作。我也使用了input 事件,但它似乎也有问题。事件 change 运行良好,但失去焦点是我自己似乎无法解决的问题。
  • 也试了ib.focus(),还是不行。
猜你喜欢
  • 1970-01-01
  • 2015-03-20
  • 2021-12-14
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
  • 2017-09-17
  • 2017-08-06
相关资源
最近更新 更多