В ваш файл макета вы включаете файл bootstrap-show-password.js
, используя тег <script>
.
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-show-password/1.0.3/bootstrap-show-password.min.js"></script>
и это тоже внутри раздела <head>
, тогда как по умолчанию, если вы используете AssetManager
или registerJsFile
, это добавит сценарии в конец страницы перед тегом </body>
, а bootstrap-show-password.js
должно быть загружается после библиотек jquery
и bootstrap
js, а не до этого, см. последовательность ниже демонстрационной версии bootstrap-show-password
<script src="assets/jquery.min.js"></script>
<script src="assets/bootstrap-v2/js/bootstrap.js"></script>
<script src="bootstrap-show-password.js"></script>
Именно поэтому вы получаете сообщение об ошибке
Uncaught TypeError: Невозможно прочитать свойство 'fn' из неопределенного в
bootstrap-show-password.min.js: 6 в bootstrap-show-password.min.js: 6
ваши jquery и bootstrap загружаются в нижнюю часть страницы, а не в заголовок.
Вы должны заменить тег script на
$this->registerJsFile('https://cdnjs.cloudflare.com/ajax/libs/bootstrap-show-password/1.1.2/bootstrap-show-password.min.js',[
'depends'=> \yii\bootstrap\BootstrapAsset::class
]);
чтобы файл загружался после библиотек начальной загрузки и jquery.
А про другую ошибку
Uncaught ReferenceError: $ st не определен в common.js: 263
Это связано с тем, что какое-то расширение установлено в вашем браузере Chrome по ссылке, которую вы указали, при поиске расширений Chrome с таким именем, которое вы можете попробовать использовать в любом другом браузере, например FF или IE, поскольку демо-URL не загружает этот конкретный URL. для меня при использовании chrome ни файл common.js
нигде не включен ни в макет, ни файлы AssetManager
.