关于同一主题的主题很少,但不完全满意我!
我想通过数据属性来定义自动填充的来源,如下所示:
<input data-behaviour='autocomplete' data-source='/path/to/source'>
我无法通过source
方法以编程方式获取它:
$ ->
$('[data-behaviour~=autocomplete]').autocomplete
source: (req, resp) ->
return $(this).data('source')
Here是一个与...无关的代码片段。
编辑:我发现的解决方法是通过create
方法设置它:
$ ->
$('[data-behaviour~=autocomplete]').autocomplete
create: (event, ui) ->
$(this).autocomplete( "option", "source", $(this).data('source') )
选中此snippet
但我真的不喜欢这种方法,我很确定可以做得更好
答案 0 :(得分:0)
我不熟悉coffeescript; jQuery UI自动完成具有source
选项,允许您制作一些自定义内容;在您的情况下,您可以使用request
使用第三个选项(功能)并设置response
参数。
功能:第三个变体,一个回调,提供最多 灵活性,可用于连接任何数据源 自动完成。回调有两个参数:一个请求对象,带有 单个术语属性,指的是当前的值 文字输入。例如,如果用户输入&#34; new yo&#34;在城市的领域, 自动填充术语将等于&#34; new yo&#34;。响应回调,哪个 需要一个参数:向用户建议的数据。这个数据 应该根据提供的术语进行过滤,并且可以是任何一个 上面描述的简单本地数据格式。这很重要 提供自定义源回调以处理错误 请求。即使您,也必须始终调用响应回调 遇到错误。这可确保窗口小部件始终具有 正确的状态。在本地过滤数据时,您可以使用 内置$ .ui.autocomplete.escapeRegex函数。它会采取一个单一的 字符串参数和转义所有正则表达式字符,产生结果 安全传递给新的RegExp()。
参考:http://api.jqueryui.com/autocomplete/#option-source
代码:
$ ->
thisEl = $('[data-behaviour~=autocomplete]');
$('[data-behaviour~=autocomplete]').autocomplete
source: (req, resp) ->
resp(thisEl.data('source'));
只是您必须实施过滤模式的示例。