文本更改事件 sj:autocompleter struts2 jquery

text change event sj:autocompleter struts2 jquery

这就是我想要做的。 如果用户从建议的选项中做出选择,那么我会使用 jquery 显示 div 标签。我使用 onCompleteTopics 触发此事件。

现在,当用户对文本框进行任何更改时,我想再次隐藏 div 标记,除非用户从建议的选项中进行选择。

如何在 jquery struts2 自动完成器上触发文本更改事件。

当用户使用 onCompleteTopics.

从建议中选择内容时,我使 div 标签可见

但是,如果用户更改字段中的文本,我想再次隐藏 div 标记。

但我找不到合适的活动。

在尝试了很多排列组合之后,我设法找到了解决方案。它并不简单,也许不是理想的解决方案,但它确实有效。

Struts代码

<sj:autocompleter
                    theme="simple" name="userName" id="idautocomplete"
                    href="%{fetchList}" onSelectTopics="complete" onSearchTopics="textchange" 
                    loadOnTextChange="true" loadMinimumCount="3" />

注意我使用了 onSelectTopics 和 onSearchTopics 但这本身并不能解决问题。我必须同时使用一些 jquery。

jquery

    var gvar;
$.subscribe("complete", function(event, data) {
    gvar = data;
    setTimeout(delayfunc, 0);
});

$.subscribe("textchange", function(event, data) {       
    $('#idBizAccess').css("display","none");
});

function delayfunc() {      
    $('#idBizAccess').css("display","table-row");
}

这里不寻常的部分是延迟为 0 的 setTimeout。我尝试直接调用该函数,但它没有获取选定的值,而只是获取在自动完成器字段中键入的值。 现在可以按要求工作了。