文本更改事件sj:autocompleter struts2 jquery

时间:2015-03-16 11:01:56

标签: struts2 autocomplete jquery-autocomplete struts2-jquery

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

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

如何在jquery struts2 autocompleter上触发文本更改事件。

当用户使用 onCompleteTopics 从建议中选择内容时,我会显示div标签。

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

但我无法找到相同的事件。

1 个答案:

答案 0 :(得分:2)

在尝试了很多排列和组合之后,我设法找出了解决方案。它不是直截了当可能不是理想的解决方案,但它有效。

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");
}

此处不寻常的部分是setTimeout,延迟为0.我尝试直接调用该函数,但它不会获取所选的值,而只是获取在autocompleter字段中键入的值。 现在它按照要求工作。