2011-09-18 14 views
6

Ho sotto CJuiAutoComplete e durante il caricamento voglio visualizzare "Cerca" nel campo di testo e al clic Voglio cancellare. Ho provato a usare "valore" sotto opzioni, ma non riuscivo a farlo funzionare. Grazie per il vostro aiutoYii CJuiAutoComplete valore di visualizzazione predefinito e cancellazione al clic

cercato anche

'htmlOptions'=>array('value'=>'Search',)

<?php 

$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
    'name'=>'test1', 
    'source'=>'js: function(request, response) { 
     $.ajax({ 
      url: "'.$this->createUrl('myAutoComplete/autoCompleate').'", 
      dataType: "json", 
      data: { 
       term: request.term, 
       brand: $("#type").val() 
      }, 
      success: function (data) { 
        response(data); 
      } 
     }) 
    }', 

    'options' => array(
        'showAnim' => 'fold', 
        'select' => 'js:function(event, ui){ alert(ui.item.value) }', 
        'click'=>'js:function(event, ui) { 
          alert("test"); 
            return false; 
           }', 
    ), 
    'htmlOptions'=>array('value'=>'Search',) 
)); 
?> 

saluti

UPDATE

mettendo direttamente 'valore' => 'Cerca' ha funzionato.

controllo per gestore di clic

Kiran

+0

potresti anche usare l'attributo "segnaposto" in htmloptions, sebbene non sia supportato in tutti i browser. – ldg

risposta

11

Che cosa si può fare è dare il tuo widget un id e poi posizionare l'evento onClick nel widget di htmlOptions e l'utilizzo di JavaScript si cancella il valore.

$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
    'id' => 'test1_id', 
    'name'=> 'test1', 
    'source'=>'js: function(request, response) { 
    $.ajax({ 
     url: "'.$this->createUrl('myAutoComplete/autoCompleate').'", 
     dataType: "json", 
     data: { 
      term: request.term, 
      brand: $("#type").val() 
     }, 
     success: function (data) { 
      response(data); 
     } 
    }) 
}', 
'options' => array(
    'showAnim' => 'fold', 
    'select' => 'js:function(event, ui){ alert(ui.item.value) }', 
), 
'htmlOptions' => array(
    'onClick' => 'document.getElementById("test1_id").value=""' 
) 
)); 

Non si può mettere in onClick l'attributo options come queste sono le opzioni di jQuery per la CJuiAutocomplete, onClick non è definito nel JUI Autocomplete options.

Acclamazioni

+1

Grazie per questa grande soluzione. Stavo cercando js: function (event, ui) in htmlOptions e non funzionava. Questa è una cosa che ottengo prima i concetti di base :) – Bujji

0

thread vecchio, ma per i neofiti che sbarcano qui, la sua semplice per aggiungere un html segnaposto attributo nel Yii CAutoComplete. Vedi il codice sotto e aggiungi la riga htmloptions:

<?php $this->widget('CAutoComplete', array(
'model'=>$model, 
'attribute'=>'tags', 
'url'=>array('suggestTags'), 
'multiple'=>true, 
'htmlOptions'=>array('size'=>50,'placeholder'=>'Seperate tags with commas'), 
)); ?> 
Problemi correlati