如何像stackoverflow一样构建自动完成类似标题检查?

时间:2012-10-27 18:33:59

标签: yii jquery-ui-autocomplete

使用Yii PHP framework。当您在stackoverflow上提出问题时,当您键入标题时,会出现一个名为“可能已经有您答案的问题”的列表。我想创建类似类型的字段,以便当用户输入业务名称时,我可以在我的系统中显示类似的业务名称。它不一定需要像stackoverflow的模型那样复杂。一个简单的字母搜索应该没问题。

请注意,与普通自动填充不同,此“自动填充”实际上不会填写相关字段,而是充当信息工具,以通知用户可能已存在的数据。

我认为Yii CJuiAutoComplete widget是适合该工作的工具,但如何从输入字段中分离自动完成?

1 个答案:

答案 0 :(得分:1)

CJuiAutoComplete绝对是正确的工具,要在选择建议值时禁用自动填充,您必须更改其select event的jQueryUI自动完成行为,以及focus event的行为。

单击建议项时会触发select事件,并且当按键(向上,向下箭头键)导航到建议项目时会触发focus事件。

因此,要更改默认行为,即更新文本字段,您可以通过从回调中返回false来取消这些事件:

$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
    // other options
    // additional javascript options for the autocomplete plugin
    'options'=>array(
        'select'=>'js:function( event, ui ) {
            return false;
        }',
        'focus'=>'js:function(event, ui) {
            return false;
        }'
    ),
));