phyllus
(Diogenes Junqueira)
October 26, 2011, 6:08pm
1
E aí galera!
Quando acrescento qualquer comando ajax na página, o jQuery CoolInput Plugin para de funcionar.
Estou usando ajax pra completar um dropDownList de cidades dependente de um de estado:
<?php echo CHtml::dropDownList(
'estado',
'',
CHtml::listData(Estado::model()->findAll(), 'id', 'nome'),
array(
'class'=>'inputbox pngfix',
'empty'=>'ESTADO',
'ajax' => array(
'type'=>'POST',
'url'=>CController::createUrl('site/dynamiccities'),
'update'=>'#cidade',
)));
?>
Tentei usar o Hint Plugin do Remy Sharp, que faz a mesma coisa, e o problema acontece da mesma forma.
Alguma sugestão?
phyllus
(Diogenes Junqueira)
October 26, 2011, 6:53pm
2
Mais outra informação:
O plugin jQuery também deixa de funcionar em qualquer view no qual eu use ‘enableClientValidation’=>true…
gusnips
(Gustavo)
October 26, 2011, 8:23pm
3
use firebug para debugar, porq provavelmente vc tem um erro no codigo no js que executa o ajax e isso faz com que o JS pare de funcionar
Verifica se vc não está duplicando a chamada da biblioteca do JQuery, o que pode estar gerando conflito.
Se no seu layout vc estiver chamando a biblioteca através da tag <script></script> substitui por
<?php Yii::app()->clientScript->registerCoreScript('jquery'); ?>
phyllus
(Diogenes Junqueira)
October 27, 2011, 5:39pm
5
Verifica se vc não está duplicando a chamada da biblioteca do JQuery, o que pode estar gerando conflito.
Se no seu layout vc estiver chamando a biblioteca através da tag <script></script> substitui por
<?php Yii::app()->clientScript->registerCoreScript('jquery'); ?>
Valeu Reginaldo. Era isso mesmo.
Não só precisei de usar registerCoreScript pra chamar a biblioteca jQuery, como também registerScriptFile pra chamar arquivo js externo.
E ainda assim só resolveu completamente o problema depois que descobri que com o parâmetro CClientScript::POS_HEAD, preciso chamar registerScriptFile logo antes da tag <title> pra funcionar corretamente, assim:
<?PHP $cs->registerScriptFile(Yii::app()->theme->baseUrl.'/scripts/jquery.coolinput.min.js', CClientScript::POS_HEAD); ?>
<title><?php echo CHtml::encode($this->pageTitle); ?></title>