问题
I am developing a project with Yii.
I need to use jquery ui on many pages of site. So I add jquery core library and jquery ui library in the layout of site to have access to them on all the pages.
But it causes problem on the pages which have a form (active form). I see this error on the firebug :
jQuery(...).activeform is not a function
why is it so? How can I resolve it?
Thank you.
回答1:
If you include jQuery core libraries manually in your layout file, it could be possible that jQuery gets loaded a second time and overrides the original jQuery object which had the Yii plugins attached.
You should use Yii::app()->clientScript->registerCoreScript('jquery.ui')
instead.
回答2:
You might have loaded the jquery twice in your page, please check the your code in layout/main.php and where ever you have registered jquery. To load the jquery default code in yii is something like as follows
Yii::app()->clientScript
Please check this line, if you are loading jquery here and you might have loaded the jquery in your layout also. Best way to check this is to use html debugger and view page source of the same page where you are getting error.
回答3:
add this code with yours path to js in head.php
<?php YII_DEBUG === true ? Yii::app()->clientScript->scriptMap = array('jquery.js'=>'/js/jquery-3.3.1.js') : Yii::app()->clientScript->scriptMap = array('jquery.min.js'=>'/js/jquery-3.3.1.min.js') ?>
<?php Yii::app()->getClientScript()->registerCoreScript('jquery'); ?>
来源:https://stackoverflow.com/questions/16831733/jquery-activeform-is-not-a-function-in-yii