我有以下问题。我曾经有一个自动完成的输入,我最近从字段中删除了它(因为它不再需要)。
字段现在是:<input type="text" class="required text motivationname valid" maxlength="30" onblur="isDoubleMotivation(this.value);" value="" id="title" name="title">
没什么特别的,对吗?
我有另一个自动完成字段,其中填充了有关城市的信息。
var elements = $('input.auto_plaatsnaam');
elements.each(function() {
$(this).autocomplete( {
dataType: "json",
source: "/common/ajax/citysearch.php",
minLength: 1,
cache: false,
delay: 100
});
});
问题如下:一些用户在第一个(标题)输入字段上得到自动完成。我认为这是一个缓存问题,因为删除缓存解决了问题。我可以强制与php或js冲洗缓存前字段加载?删除所有的缓存并不是真正有益的网站,所以我希望我只是可以删除这些字段的缓存。
似乎最新版本的jquery ui已经解决了这个问题。感谢所有!
一个可靠的解决方案是在查询url中添加一个参数,包含时间戳。
示例(未实际测试):
var elements = $('input.auto_plaatsnaam');
elements.each(function() {
$(this).autocomplete( {
dataType: "json",
source: function() { return "/common/ajax/citysearch.php?t="+new Date().getTime()},
minLength: 1,
cache: false,
delay: 100
});
});
这样,AJAX调用的url总是不同的,所以浏览器不会缓存。
假设你把你的js保存在文件'myjs.js'中,你可以修改相应的脚本标签到这个
<script src="/path/to/myjs.js?version=0.01"></script>