jQuery脚本在CakePHP中不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery脚本在CakePHP中不起作用相关的知识,希望对你有一定的参考价值。

我正在将一个php项目转换为CakePHP,并且遇到了像datepicker,文本编辑器等预定义的jQuery脚本的问题。

以下是我在页面上添加的CSS脚本:(如果右键单击页面并单击页面源)

<link rel="stylesheet" type="text/css" href="/cakeskite/css/common.css" />
<link rel="stylesheet" type="text/css" href="/cakeskite/css/creatorcommon.css" />
<link rel="stylesheet" type="text/css" href="/cakeskite/css/jquery-ui.css" />
<link rel="stylesheet" type="text/css" href="/cakeskite/css/cssbuttons.css" />
<link rel="stylesheet" type="text/css" href="/cakeskite/css/jquery-te-1.4.0.css" />
<link rel="stylesheet" type="text/css" href="/cakeskite/css/jquery.datepick.css" />

<script type="text/javascript" src="/cakeskite/js/jquery.js"></script>
<script type="text/javascript" src="/cakeskite/js/jquery-ui-1.8.2.custom.min.js"></script>
<script type="text/javascript" src="/cakeskite/js/jquery.simplemodal.js"></script>
<script type="text/javascript" src="/cakeskite/js/jquery.datepick.js"></script>
<script type="text/javascript" src="/cakeskite/js/jquery.ptTimeSelect.js"></script>
<script type="text/javascript" src="/cakeskite/js/jquery-te-1.4.0.js"></script>
<script type="text/javascript" src="/cakeskite/js/common.js"></script>
<script type="text/javascript" src="/cakeskite/js/creatorcommon.js"></script>

如果我点击任何链接,它会显示该文件存在,所以这不是找不到文件的问题。我也可以在Chrome控制台中检查一下

我在布局文件中添加了我的脚本,如下所示:

<?php
echo $this->html->css('common');
echo $this->Html->css('creatorcommon');
echo $this->Html->css('jquery-ui');
echo $this->Html->css('cssbuttons');
echo $this->Html->css('jquery-te-1.4.0');
echo $this->Html->css('jquery.datepick');

echo $this->Html->script('jquery');
echo $this->Html->script('jquery-ui-1.8.2.custom.min');
echo $this->Html->script('jquery.simplemodal');
echo $this->Html->script('jquery.datepick');
echo $this->Html->script('jquery.ptTimeSelect');
echo $this->Html->script('jquery-te-1.4.0');
echo $this->Html->script('common');
echo $this->Html->script('creatorcommon');

echo $scripts_for_layout;
?>

我将所有CSS和脚本文件放在webroot / js和webroot / css文件夹中

我收到的错误如下:

Object [object Object] has no method 'datepick'

而他们正在非蛋糕项目中工作。以下是来自html和脚本文件的行

注意:我正在使用ajax加载东西,并且在接收数据时绑定控件

$.ajax({
    url: 'loadtests',
    type: 'POST',
    data: 'category_id=' + category_id + '&subcategory_id=' + subcategory_id,
    success: function(result){

        stopLoading();
        if(!isSessionExpired(result)){

            $(".msg").html("&nbsp;");

            if(result.indexOf("No tests found...")>-1){
                $(".tests").html("No tests found...");
            }
            else{
                $(".tests").html(result);

                $(".testfound").css("display","block");
                $(".durationrow").css("display","block");
                $(".noduration").css("display","none");             

                disableKeyPress($("input[name='startdate']"));
                disableKeyPress($("input[name='enddate']"));
                disableKeyPress($("input[name='starttime']"));
                disableKeyPress($("input[name='endtime']"));

                $("input[name='startdate']").datepick({dateFormat: 'yyyy-mm-dd', changeMonth: false});
                $("input[name='enddate']").datepick({dateFormat: 'yyyy-mm-dd', changeMonth: false});
                $("input[name='starttime']").ptTimeSelect();
                $("input[name='endtime']").ptTimeSelect();

                $(".datepicker").css("display","block");
                $("select[name='test']").change(
                        function(){
                            checkTestDuration();
                        }
                    );

                checkTestDuration();
            }
        }
        else
            notLoggedIn();
    }

这是我的html表单:

    <div class="createrow timebound testfound">
        <div class="column150 leftfloat">Start Date</div>
        <div class="column250 leftfloat">
            <input name="startdate" class="txt100" />
        </div>
        <div class="column150 leftfloat msg">&nbsp;</div>
        <div class="clear"></div>
    </div>

    <div class="createrow timebound testfound">
        <div class="column150 leftfloat">End Date</div>
        <div class="column250 leftfloat">
            <input name="enddate" class="txt100" />
        </div>
        <div class="column150 leftfloat msg">&nbsp;</div>
        <div class="clear"></div>
    </div>

    <div class="createrow timebound testfound">
        <div class="column150 leftfloat">Start Time</div>
        <div class="column250 leftfloat">
            <input name="starttime" class="txt100" />
        </div>
        <div class="column150 leftfloat msg">&nbsp;</div>
        <div class="clear"></div>
    </div>

    <div class="createrow timebound testfound">
        <div class="column150 leftfloat">End Time</div>
        <div class="column250 leftfloat">
            <input name="endtime" class="txt100" />
        </div>
        <div class="column150 leftfloat msg">&nbsp;</div>
        <div class="clear"></div>
    </div>

我究竟做错了什么?

答案

我努力寻找解决方案,接近90%

我使用cakephp创建了另一个项目,并且只使用了时间选择器,并且运行正常

因此,我得出结论,包含的脚本文件存在一些冲突

如果我发现,我会试着发帖

以上是关于jQuery脚本在CakePHP中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Cakephp 在 IIS 中不起作用?

jQuery 的选择器在 iframe 中不起作用

UpdateAll 在 CakePHP 中不起作用

更改路由时jQuery在vue组件中不起作用

html元素中的表单元素在cakephp中不起作用

一个在 IE 中不起作用的简单 jQuery 脚本 - 认为 jQuery 是跨平台的!