Я знаю, что этот вопрос задавался много раз, и здесь, и на сайте Yii, но я не получаю решение даже после прохождения каждого решения. Я уверен, что я делаю что-то в корне неправильно. Так что, если вы все еще читаете это - здесь ничего не идет,
У меня есть страница с загружаемым виджетом CheckBoxList. У него есть вызов функции change () jQuery, который обновляет CGridView, который отлично работает. У меня также есть диапазон, связанный с каждым из элементов в checkBoxList, которые имеют событие click.
Это событие щелчка, в свою очередь вызывает контроллер, который «частично отображает» представление -
Yii::app()->clientscript->scriptMap['jquery.js'] = false;
$this->widget('ext.xxx.EModelWidget', array(
'name' => $widget_name,
'manufacturer_id' => $manufacturer_id,
)
);
И соответствующий код виджета печатает CheckBoxList после извлечения $ data из базы данных.
echo CHtml::checkBoxList($this->name, array(), $data, array(
'class' => 'modelFilter',
'separator' => '',
'template' => '<div>{input} {label}</div>',
'id' => 'dummyID',
));
Как видите, я поставил имя класса для каждого элемента, который будет отображаться как флажок, чтобы оно было modelFilter
Теперь у меня есть скрипт в файле основного вида, который просто отображает окно с предупреждением при нажатии флажка класса modelFilter.
Yii::app()->clientScript->registerScript('model-selected', "
$('input.modelFilter').change(function(){
alert('Hellpo!');
});
");
Но, к сожалению, этого никогда не происходит.
Два общих решения, которые я прочитал на всех форумах:
a) Yii :: app () -> clientcript-> scriptMap ['jquery.js'] = false; , как вы можете видеть, я должным образом следовал.
b) Параметры $ result и $ processOutput объекта renderPartial должны иметь значение false и true соответственно. , что я тоже соблюдаю.
Таким образом, мой вопрос заключается в том, что мне нужно сделать, чтобы функция изменения содержимого, загружаемого через Ajax, работала в Yii !!