2017-02-24 83 views
0

我試圖使用遙控鏈式插件在CakePHP(http://www.appelsiini.net/projects/chained) 我用jQuery來檢測警報和作品,但只是鏈接插件無法正常工作。我正在嘗試使用他們的代碼在他們的網站上進行示例。如果你想查看我的網頁去http://team.southpacificavionics.com/customers/test 登錄:客人 密碼:密碼使用鏈式jQuery插件

jquery.chained.remote.min.js

/*! Chained 1.0.0 - MIT license - Copyright 2010-2014 Mika Tuupola */ 
!function(a){"use strict";a.fn.remoteChained=function(b){var c=a.extend({},a.fn.remoteChained.defaults,b);return c.loading&&(c.clear=!0),this.each(function(){function b(b){var c=a(":selected",d).val();a("option",d).remove();var e=[];if(a.isArray(b))e=a.isArray(b[0])?b:a.map(b,function(b){return a.map(b,function(a,b){return[[b,a]]})});else for(var f in b)b.hasOwnProperty(f)&&e.push([f,b[f]]);for(var g=0;g!==e.length;g++){var h=e[g][0],i=e[g][1];if("selected"!==h){var j=a("<option />").val(h).append(i);a(d).append(j)}else c=i}a(d).children().each(function(){a(this).val()===c+""&&a(this).attr("selected","selected")}),1===a("option",d).size()&&""===a(d).val()?a(d).prop("disabled",!0):a(d).prop("disabled",!1)}var d=this,e=!1;a(c.parents).each(function(){a(this).bind("change",function(){var f={};a(c.parents).each(function(){var b=a(this).attr(c.attribute),e=(a(this).is("select")?a(":selected",this):a(this)).val();f[b]=e,c.depends&&a(c.depends).each(function(){if(d!==this){var b=a(this).attr(c.attribute),e=a(this).val();f[b]=e}})}),e&&a.isFunction(e.abort)&&(e.abort(),e=!1),c.clear&&(c.loading?b.call(d,{"":c.loading}):a("option",d).remove(),a(d).trigger("change")),e=a.getJSON(c.url,f,function(c){b.call(d,c),a(d).trigger("change")})}),c.bootstrap&&(b.call(d,c.bootstrap),c.bootstrap=null)})})},a.fn.remoteChainedTo=a.fn.remoteChained,a.fn.remoteChained.defaults={attribute:"name",depends:null,bootstrap:null,loading:null,clear:!1}}(window.jQuery||window.Zepto,window,document); 

test.ctp

<?php echo $this->Html->script('jquery.min'); ?> 
<?php echo $this->Html->script('jquery.chained.remote.min'); ?> 


<script type="text/javascript"> 
    $(document).ready(function() { 
     alert('java is working'); 
    }); 
</script> 

<select id="mark" name="mark"> 
    <option value="">--</option> 
    <option value="bmw">BMW</option> 
    <option value="audi">Audi</option> 
</select> 
<select id="series" name="series"> 
    <option value="">--</option> 
    <option value="series-3" class="bmw">3 series</option> 
    <option value="series-5" class="bmw">5 series</option> 
    <option value="series-6" class="bmw">6 series</option> 
    <option value="a3" class="audi">A3</option> 
    <option value="a4" class="audi">A4</option> 
    <option value="a5" class="audi">A5</option> 
</select> 

<script> 
(function() { 
    $("#series").chainedTo("#mark"); 
}); 
</script> 

回答

1

這有與CakePHP無關 - 它是一個客戶端JavaScript庫。

但是,你有兩個問題,第一:

(function() { 
    $("#series").chainedTo("#mark"); 
}); 

實際上不是「跑」,你只需定義一個匿名函數來看,如果調用。它應該只是被移動,很可能,到了那裏你alert所在:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#series").chainedTo("#mark"); 
    }); 
</script> 

現在,它會運行,但如果你檢查瀏覽器的控制檯,它會被示數時,是這樣的:

Uncaught TypeError: $(...).chainedTo is not a function

它看起來像庫運行不正確。

我不知道你在哪裏得到了jQuery的鏈接庫的源代碼,但它不是在頁面的當前版本中,你鏈接的Github上從抓住它:

https://github.com/tuupola/jquery_chained/

直接最小化版本上市在這裏:

https://raw.githubusercontent.com/tuupola/jquery_chained/master/jquery.chained.min.js

+0

哇非常感謝我有來自https://github.com/tuupola/jquery_chained/ 所有文件,只是包含這些也scrips <?PHP的echo $這個 - > HTML的「腳本( 'jquery.min'); ?> <?php echo $ this-> Html-> script('jquery.chained'); ?> –