我已经成功实现了 PengoWorks 版本的 JQuery 自动完成功能多次用于查找等,但现在我试图在添加/编辑屏幕上使用它,如果自动完成框已经设置了一个值,它会检查 ajax 驱动查找以查看该值是否存在,如果存在,则保持原样并允许用户将其更改为自动完成列表中的另一个值。
根据文档,我应该能够通过调用 findValue() 函数来做到这一点 - 但是,我似乎无法让它工作 - 每次我加载我的页面时,我在输入中的预设值被清除了自动完成,即使该值与自动完成列表中的内容匹配。我尝试使用查看演示页面源代码的代码,但没有任何反应,Firebug 中也没有 JS 错误。我确实注意到我对 mustMatch 设置的使用似乎会影响它(尽管我认为因为它是匹配项,所以这无关紧要),并且删除它会导致输入中的预设值显示,但现在存在一种可能性用户可以输入不在自动完成列表中的值。
这是我的代码(没有 findValue() 函数 - 我删除了它,希望不会让任何人混淆它,阅读文档和示例的人会看到我没有看到的东西,并为我指明正确的方向。)希望有人可以向我展示如何使用 findValue() 函数,因此如果预设值与列表中的条目匹配,它会保持可见,但仍允许用户清除输入并从自动完成列表中选择另一个条目。
<script type="text/javascript">
$(function(){
$('#Entity').autocomplete("/validate/getEntities.cfm", {
autofill:true,
minChars: 2,
matchSubset:true,
matchContains:1,
selectFirst:true,
//mustMatch:true,
cellSeparator:"^",
onItemSelect:setEntityID
});
function setEntityID(li){
$('#EntityID').setValue(li.extra[0]);
};
});
</script>