自动完成没有搜索结果

时间:2015-04-08 18:10:34

标签: javascript jquery html web autocomplete

我需要更改隐藏值的值,具体取决于自动填充的搜索是否有任何结果。我知道ui-autocomplete显示的跨度是这样的:

<span role="status" aria-live="polite" class="ui-helper-hidden-accessible">1 result is available, use up and down arrow keys to navigate.</span>

当我在输入中使用onChange事件时,我需要知道搜索的结果。

我的代码必须是这样的:

    function onChangeHiddenValue() {
    if(search == 'No results) --> I need to change this
        {
        document.forms['form'].elements['hiddenId'].value = cliente.id;
        }
    else
        {
        document.forms['form'].elements['hiddenId'].value = null;
        }
  }

我的Html代码是这样的

    <div class="form-group">
        <label for="name" class="uppercase"><fmt:message key="user.name" /></label>
        <form:input  onchange="onChangeHiddenValue();" cssClass="form-control" path="user.name" id="name"disabled="${readonly}" submitbyenter="true" />
        <form:errors path="user.id" cssClass="error-block" />
        <form:hidden path="user.id" id="userId" />
    </div>

2 个答案:

答案 0 :(得分:0)

假设你的跨度会说&#34; 0结果......&#34;如果没有找到,这对你有用:

为您的span标记添加ID,例如id =&#34; searchid&#34;

if(parseInt(document.getElementById("searchid").innerHTML.charAt(0)) > 0)

修改 由于您无法在范围中添加ID,因此字符串的开头并不总是有数字。将ID添加到div标签,然后尝试使用:

var searchbox=document.getElementById('searchid');
var searchresult=searchbox.getElementsByTagName('span')[0].innerHTML;
try {
    var number = parseInt(searchresult.charAt(0));
    if(number > 0)
    {
        document.forms['form'].elements['hiddenId'].value = null;
    }
    else
    {
        document.forms['form'].elements['hiddenId'].value = cliente.id;
    }
}
catch(err) {
    document.forms['form'].elements['hiddenId'].value = cliente.id;
}

答案 1 :(得分:0)

您可以使用响应事件来检查是否有结果,如果没有,则可以设置隐藏输入的值。

http://api.jqueryui.com/autocomplete/#event-response