Я загрузка формы (в зависимости от выбранного варианта в DropDownList) с ajaxcall (который вызывает renderPartial)
ajaxcall выглядит как:Javascript для виджета CActiveForm ISNT доступен после renderPartial
$("#dropDownList").change(function() {
var selected = $(this).val();
$.ajax({
url: "index.php?r=item/update&category="+selected,
cache: false,
success: function(html){
$("#inputs").html(html);
}
})
});
Акция «обновление»:
public function actionUpdate($category){
$model = new Item;
$this->renderPartial($category, array(
'model'=>$model,
), false, true);
}
форма будет renderd в сНе «вход», без каких-либо проблем, но до сих пор нет Javascript для формы. Я уже использовал
Yii::app()->clientScript->scriptMap['jquery.js'] = false;
, чтобы предотвратить, что jquery будет загружен дважды. Но для моей формы все еще нет js (jquery.yiiactiveform.js).
Редактировать: Я проверил свой firebug, что jquery.yiiactiveform.js будет загружен после ajaxcall (опять?). - Если я использую:
Yii::app()->clientScript->scriptMap['jquery.yiiactiveform.js'] = false;
jquery.yiiactiveform.js разве доступны больше, поэтому он не должен быть загружен в два раза?
Если я загружаю сценарии в своем представлении с помощью ajaxcall, сценарии будут существовать дважды (в этом представлении), поэтому он вообще не работает. Думаю, – spyfx
Из моего личного опыта при работе с аналогичной задачей для вас проблема с перезагрузкой. jQuery всегда дает проблемы, но затем другие скрипты перезагружаются, иногда они создают проблемы. Самое простое решение - отключить их в scriptMap. У моего коллеги также была аналогичная проблема, поэтому он нашел некоторое расширение, которое отключает скрипты, если они уже загружены, но я не могу вспомнить имя расширения, поэтому вам может понадобиться выкопать расширения Yii. –