CakePhp2自动完成(jquery-ui折叠)不能在没有ajax的情况下工作,只有可用输入数组

时间:2012-02-23 17:50:05

标签: javascript jquery-ui jquery-ui-autocomplete cakephp-2.0

我正在使用 cakephp2

我想在cakephp2 中进行自动完成,但是不能使用ajax,它是自动完成可用输入的数组。我有简单的LocationsController(不重要,但我把它括起来),我有:

class LocationsController extends AppController {

    public $name = 'Locations';

    public function index() {                
        $this->set('title_for_layout', 'Example - title');                 
    }
}

我有一个视图/ locations / index.ctp 我有

<div id="big_input_normal" >                                
<form>
   <input type="text" id="the_big_one" class="big_input_selection" />
   </form>
</div>
<script>
    $(function() {
        var names = [ "Bratislava", "Praque", "Trstena" ];

        var accentMap = {
            "á": "a",
            "ö": "o",
            "é": "e"
        };
        var normalize = function( term ) {
            var ret = "";
            for ( var i = 0; i < term.length; i++ ) {
                ret += accentMap[ term.charAt(i) ] || term.charAt(i);
            }
            return ret;
        };

        $( "#the_big_one" ).autocomplete({
            source: function( request, response ) {
                var matcher = new RegExp( $.ui.autocomplete.escapeRegex( request.term ), "i" );
                response( $.grep( names, function( value ) {
                    value = value.label || value.value || value;
                    return matcher.test( value ) || matcher.test( normalize( value ) );
                }) );
            }
        });
    });
    </script>

当然我已经包括在脑袋里了:

<script src="./app/webroot/js/jquery-1.7.1.js"></script>
<script src="./app/webroot/js/jquery.ui.core.js"></script>
<script src="./app/webroot/js/jquery.ui.widget.js"></script>
<script src="./app/webroot/js/jquery.ui.position.js"></script>
<script src="./app/webroot/js/jquery.ui.autocomplete.js"></script>

总结一下: 我正在使用CAKEPHP2(它是版本2而非1.3),我想用jquery进行自动完成,我下载了jquery-ui,我已经按照示例折叠http://jqueryui.com/demos/autocomplete/ 我已经做到了,看看示例代码,但是有一个问题,它不起作用。

Javascripts是否在页面到客户端之后被默认阻止? 或问题出在哪里?请帮助我,这个原始问题让我失去理智。

1 个答案:

答案 0 :(得分:0)

看起来所有javascript包含都不正确。他们应该像这样引用js文件:

<script src="/js/jquery-1.7.1.js"></script>

要让蛋糕自动执行此操作,您可以执行以下操作:

<?php echo $this->Html->script('jquery-1.7.1.js'); ?>