Jquery ui 触发JQuery';自动完成';在第二区域

Jquery ui 触发JQuery';自动完成';在第二区域,jquery-ui,autocomplete,keystroke,Jquery Ui,Autocomplete,Keystroke,我们目前有两个HTML文本区域“tinput”(主要)和“toutput”(次要),在这两个区域中,我们模拟主要区域中的输入,以反映在次要区域中,就好像有人真的在次要区域中键入一样。其想法是在辅助服务器上触发“自动完成”(通过ajax)。我们有这个工作,但不是最佳的 我们已将JQuery UI“自动完成”(JQAC)附加到具有minLength:3集的辅助系统。您可能知道,通常情况下,在输入3个字符之后,JQAC会“缓冲”上面的字符条目,而不会对输入的每个字符进行ajax调用。这是理想的 然而,

我们目前有两个HTML文本区域“tinput”(主要)和“toutput”(次要),在这两个区域中,我们模拟主要区域中的输入,以反映在次要区域中,就好像有人真的在次要区域中键入一样。其想法是在辅助服务器上触发“自动完成”(通过ajax)。我们有这个工作,但不是最佳的

我们已将JQuery UI“自动完成”(JQAC)附加到具有minLength:3集的辅助系统。您可能知道,通常情况下,在输入3个字符之后,JQAC会“缓冲”上面的字符条目,而不会对输入的每个字符进行ajax调用。这是理想的

然而,通过我们的第二次模拟,我们颠覆了这种行为,不幸的是,在第三个char条目之后,会对之后的每个char进行JQAC ajax调用,这不是最优的。我们知道为什么,但不知道如何避开它。我们相信我们已经颠覆了这一点,因为我们正在打电话

  $('#tinput').autocomplete('search',$('#tinput').val()) 
在secondary的键句柄中,根据JQAC的文档,它强制进行ajax调用

总而言之,我们需要第二个JQAC连接到它,它的行为就像有人真的在输入它一样,而JQAC的行为正常

下面是我们的字符输入模拟处理的JS(我们已经更改了本文的变量名,所以请忽略输入错误):


如有任何想法,将不胜感激。谢谢

我们找到了一个优雅的解决方案。这是对我们原版的一个小小的修改

  • 将主触发事件更改为“输入”,而不是原来的“按键”
  • 删除次进程的处理程序
  • 以下是更新的JS:

    $("#tinput").on('input', function (e) {
       $("#toutput").val($("#tinput").text());
    
       var newEvent = jQuery.Event("input");
       newEvent.which = e.which; // # Some key code value
       $("#toutput").trigger(newEvent);
    });
    
    并删除:

     //$("#toutput").keypress(function(e) {
    
     //   $("#toutput").autocomplete('search',$("#toutput").val());
     // });
    
    完成了

     //$("#toutput").keypress(function(e) {
    
     //   $("#toutput").autocomplete('search',$("#toutput").val());
     // });