[Risolto]Jquery Change

Salve ragazzi non riesco a far richiamare una semplice funziona js…

Importo il file jquery.js:


<?php Yii::app()->clientScript->registerCoreScript('jquery') ?>

dopo cerco di far comparire un semplice alert nel momento in cui vado a scrivere nella textField:


<?php echo $form->labelEx($model,'anno'); ?>

		<?php echo $form->textField($model,'anno',array('value'=>date('Y',time()))); ?>

		<?php echo $form->error($model,'anno'); ?>

            <?php Yii::app()->clientScript->registerCoreScript('

                     jQuery("#PrefixarchivioPratiche_anno").change(function()

                         {

                             alert($this.value());    

                         });

                  '); ?>

ma non accade nulla…




Yii::app()->getClientScript()->registerScript(

        'nomeMiaFunzione',

        '$("#PrefixarchivioPratiche_anno").change(function()

                         {

                             alert($this.value());    

                         });

',

        CClientScript::POS_READY

        );



niente alla fine ho risolto cosi:


<script>

                jQuery('#PrefixarchivioPratiche_anno').change(function() {

                    alert(jQuery(this).val());

                });

            </script>



:(

ciao michele,

se cambi l’alert in questo modo:


alert(jQuery(this).val());

funziona?

no continua a non funzionare…

è vero comunque quello era un’errore

prova allora con questo:


<?php echo $form->textField($model,'anno',array('value'=>date('Y',time()), 'onchange'=>'alert(jQuery(this).val())')); ?>

ho provato il codice sul mio attuale progetto:

  • Step 1: come hai scritto te prima, occorre importare jQuery

<?php Yii::app()->clientScript->registerCoreScript('jquery') ?>

  • Step 2: aggiungere un evento onkeyup[color="#FF0000"]*[/color] nelle htmlOptions del textField

<?php echo $form->textField($model,'anno',array('value'=>date('Y',time()), 'onkeyup'=>'alert($(this).val())')); ?>

[color="#FF0000"]*[/color] se vuoi controllare il textField ogni volta che viene aggiunto/tolto un carattere, ti conviene utilizzare onkeyup al posto di onchange

altra nota: siccome hai importato la libreria jQuery, puoi utilizzare $ come alias di jQuery

grazie Yiigorsol ora funziona :D

figurati, finalmente ho aiutato anch’io qualcuno! :D

scusa ma questo lo fai in views/layouts/main ?? io senza farlo riesco a fare lo step2 tranquillamente… mi devo preoccupare??? :D:D:D

se cancelli la cartella assest nn t funzionerrà subito in tutte le pagine…dovresti prima richiamare la pagina che importa jquery.js e quindi le altre pagine riprenderanno a funzionare

Ci sono una botta di widget che fanno


<?php Yii::app()->clientScript->registerCoreScript('jquery') ?>



Se usi un ajaxlink, grid/list view o qualsiasi altra cosa che usa jquery, il framework viene importato.

E’ buona norma se usi jquery di registrarlo (tanto non viene messo cmq una volta sola), altrimenti rischi che sembra funzionare sempre finche’ non capiti in qualche pagina sfigata che non ha widgets.

@michele: dai una occhiata a CClientScript, fai confusione fra le funzioni registerScript e registerCoreScript, leggiti la doc e vedrai che poi ti funziona tutto.