Autocompletion 自动完成
当用户在一个文本录入组件中输入字符时, 如果能列出与用户输入匹配的一列词汇时, 就称为自动完成.在远程动作以HTML 列表(list)形式返回响应时,避免利用一个input_auto_complete_tag() helpler, 你就可以 达到这个效果. 表11-30是一个例子.
表11-30 与自动完成标记兼容的响应
<ul>
<li>suggestion1</li>
<li>suggestion2</li>
...
</ul>
你可以仿照表11-31中的例子, 在输入规则的文本时, 将辅助函数插入模板.
表11-31 在模板中使用自动完成标记helpler.
[php]
<?php echo form_tag('mymodule/myaction') ?>
Find an author by name:
<?php echo input_auto_complete_tag('author', 'default name',
'author/autocomplete',
array('autocomplete' => 'off'),
array('use_style' => true)
) ?>
<?php echo submit_tag('Find') ?>
</form>
当用户每次在author域中输入一个字符, 它就会调用author/autocomplete动作.你可以设计动作,以便根据author请求参数确定一个可能的匹配列表, 并且以类似表11-30的格式返回.然后辅助函数就会在author标记下显示这个列表, 当用户点击其中的一个提示或用键盘选择一个提示时, 输入就可以完成. 图11-3 是它的图示.
图11-3一个自动完成的例子
input_auto_complete_tag() 辅助函数的第三个参数可以取以下参数:
use_style: 自动控制响应列表的形式.
frequency: 周期性调用的频率(默认值为0.4秒)..
tokens: 开通标记化的递增自动完成功能. 例如, 如果你设定这个参数为,, 而用户输入了jane,george, 则动作只接受'george'值.
NOTE The input_auto_complete_tag() helper, like the following ones, also accepts the usual remote helper options described earlier in this chapter. In particular, it is a good habit to set loading and complete visual effects for a better user experience.注意 和其它辅助函数一样, input_auto_complete_tag() 辅助函数也接受本章前面描述的常用的远程辅助函数选项. 值得一提的是, 为了得到更好的用户体验, 设定loading 和complete视觉效果是一个好的习惯.