我正在使用 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是否在页面到客户端之后被默认阻止? 或问题出在哪里?请帮助我,这个原始问题让我失去理智。
答案 0 :(得分:0)
看起来所有javascript包含都不正确。他们应该像这样引用js文件:
<script src="/js/jquery-1.7.1.js"></script>
要让蛋糕自动执行此操作,您可以执行以下操作:
<?php echo $this->Html->script('jquery-1.7.1.js'); ?>