Yii CJuiAutoComplete отображаемое значение по умолчанию и очистка его по клику - PullRequest
6 голосов
/ 18 сентября 2011

У меня ниже CJuiAutoComplete и при загрузке я хочу отобразить «Поиск» в текстовом поле и при клике я хочу очистить. Я попытался использовать «значение» под опциями, но не смог заставить его работать. Спасибо за вашу помощь

пробовал также

'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',)
));
?>

Привет

UPDATE

прямой ввод 'value' => 'Search' сработал.

Проверка на обработчик кликов

Киран

Ответы [ 2 ]

11 голосов
/ 19 сентября 2011

Что вы можете сделать, это присвоить виджету идентификатор, а затем поместить событие onClick в виджет htmlOptions и, используя JavaScript, очистить значение.

$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=""'
)
));

Нельзя поместить onClick в атрибуте options, поскольку это параметры jQuery для CJuiAutocomplete , onClick не определено в параметрах JUI Autocomplete .

Cheers

0 голосов
/ 28 августа 2014

Старый поток, но для новичков, которые попадают сюда, просто добавить атрибут html placeholder в Yii CAutoComplete. Посмотрите код ниже и добавьте в строку htmloptions:

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