【问题标题】:Help with Jquery autocomplete - nearly finished帮助 Jquery 自动完成 - 快完成了
【发布时间】:2011-09-12 01:53:08
【问题描述】:

我一直在自定义 Jquery UI 自动完成功能,以确保用户只提交来自 geonames 数据源的数据。

DEMO

在选择城市名称后,我还会从 geonames 网络服务中检索国家、纬度和经度,并将它们添加到隐藏的输入中。

为了确保人们确实从建议列表中选择了一个城市,如果您在建议列表之外点击,我会清除输入。

(我也在php中做一些验证)

问题:点击离开建议列表后,当您输入城市名称时它不会重新出现,除非您按空格键。我不确定是什么原因造成的。此外,当您输入带有空格的城市时,有时建议列表会消失。

有人可以分享一些指导吗?我也欢迎任何其他建议!

【问题讨论】:

  • 它在你的小提琴中重新出现在我面前(Snow Leopard 上的 Safari 5.0.5)
  • 感谢您的确认!我使用的是 Chrome 或 Firefox

标签: jquery html ajax geocoding


【解决方案1】:

自动完成插件曾经有一个名为“mustMatch”的选项 - 它做了你想要的,但后来被删除了。

我相信您可以按照以下说明重新实现它:

How to implement "mustMatch" and "selectFirst" in jQuery UI Autocomplete?

另一种选择:

用以下丑陋的解决方法替换您的更改(在您修改后的小提琴中)或关闭(在原始小提琴中):

        change: function (event, ui) {
            //if the value of the textbox does not match a suggestion, clear its value
            if ($(".ui-autocomplete li:textEquals('" + $(this).val() + "')").size() == 0) {
                $(this).val('####');        
                $(this).autocomplete("search");
                $(this).val('');
                $(this).autocomplete("close");                    
            }
        }

【讨论】:

  • 哇,是的,这真的很烦人。我可以重现您的问题,但看不到它为什么会这样做或找到解决方法。甚至尝试编辑 autocomplete.js,但没有成功。
  • 谢谢!它似乎也只适用于$(this).autocomplete("search"); 不知道为什么哈哈
  • 嗯,实际上只是 $(this).autocomplete("search"); 不会......它会导致另一个问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-24
  • 1970-01-01
  • 1970-01-01
  • 2017-04-09
  • 2013-04-24
  • 1970-01-01
相关资源
最近更新 更多