自动完成没有搜索结果
AutoComplete no search results
我需要更改隐藏值的值,具体取决于自动完成搜索是否有任何结果。我知道 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>
假设当找到 none 时您的跨度会说“0 结果...”这应该适合您:
为您的 span 标签添加一个 ID,例如 id="searchid"
if(parseInt(document.getElementById("searchid").innerHTML.charAt(0)) > 0)
编辑:
因为你不能在 span 中添加一个 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;
}
您可以使用响应事件来检查是否有结果,如果没有,则可以设置隐藏输入的值。
我需要更改隐藏值的值,具体取决于自动完成搜索是否有任何结果。我知道 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>
假设当找到 none 时您的跨度会说“0 结果...”这应该适合您:
为您的 span 标签添加一个 ID,例如 id="searchid"
if(parseInt(document.getElementById("searchid").innerHTML.charAt(0)) > 0)
编辑: 因为你不能在 span 中添加一个 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;
}
您可以使用响应事件来检查是否有结果,如果没有,则可以设置隐藏输入的值。