2013-12-11 25 views
0
echo CHtml::link('Delete', '#', array('submit'=>'admin/page/exhibitions/delete', 'params'=>array('test'=>50), 'csrf'=>false, 'confirm'=>'Are you sure?')); 

我可以在Yii有插入這些行代碼的HTMLYii的 - 了CHtml ::鏈接()發表與確認對話框不工作

jQuery(function($) { 
    jQuery('body').on('click','#yt0',function(){if(confirm('gdfgdfgdfgd')) {jQuery.yii.submitForm(this,'admin/page/exhibitions/delete',{'test':50});return false;} else return false;}); 
    jQuery('body').on('click','#yt1',function(){if(confirm('gdfgdfgdfgd')) {jQuery.yii.submitForm(this,'admin/page/exhibitions/delete',{'test':50});return false;} else return false;}); 
    jQuery('body').on('click','#yt2',function(){if(confirm('gdfgdfgdfgd')) {jQuery.yii.submitForm(this,'admin/page/exhibitions/delete',{'test':50});return false;} else return false;}); 
}); 

然而檢查人員看到,當我點擊生成的鏈接,確認框彈出,當我點擊確定,什麼都沒有發生,只是我的控制檯顯示以下錯誤:

Uncaught TypeError: Cannot call method 'submitForm' of undefined

任何人有一個想法?

+2

發生錯誤是因爲頁面中未包含「jquery.yii.js」。這應該是自動發生的。在HTML中有沒有對它的引用? – Jon

+0

'jquery.yii.js'的位置是什麼,以便我自己可以包含它? – Romed7442

+0

你自己不包含它,你可以使用['registerCoreScript('yii')'](http://www.yiiframework.com/doc/api/1.1/CClientScript#registerCoreScript-detail)來做到這一點。但是,如果這不會自動發生,這意味着您的應用程序中存在一些未解決的問題。 – Jon

回答

3

檢查,你使用CForm,CActiveForm或TBActiveForm部件?由於提交是表單組件的一部分,必須用

<form ...></form> 

和其他參數包裝。

如果您只想鏈接 - 請勿使用Submit參數。

CHtml::link(
    'Delete', 
    array('admin/page/exhibitions/delete','test'=>50), 
    array('confirm' => 'Are you sure?') 
); 
0

如果在文檔結尾處有另一個jquery,則jquery.yii.js將被重寫。 刪除另一個jQuery實例。