2011-09-18 37 views
6

Tôi có dưới CJuiAutoComplete và khi tải tôi muốn hiển thị "Tìm kiếm" trong trường văn bản và khi nhấp, tôi muốn xóa. Tôi đã thử sử dụng "giá trị" trong các tùy chọn, nhưng không thể làm cho nó hoạt động. Nhờ sự giúp đỡ của bạnYii CJuiAutoHoàn tất giá trị hiển thị mặc định và xóa nó khi nhấp vào

cũng

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

cố gắng Trân

CẬP NHẬT

đặt trực tiếp 'giá trị' => 'Tìm kiếm' làm việc.

Kiểm tra xử lý nhấp chuột

Kiran

+0

bạn cũng có thể sử dụng thuộc tính "trình giữ chỗ" trong htmloptions, mặc dù nó không được hỗ trợ trong tất cả các trình duyệt. – ldg

Trả lời

11

Những gì bạn có thể làm là cung cấp cho widget của bạn một id và sau đó bạn đặt sự kiện onClick trong các phụ tùng của htmlOptions và sử dụng JavaScript bạn xóa các giá trị.

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

Bạn không thể đặt onClick trong thuộc tính options vì đây là những tùy chọn jQuery cho CJuiAutocomplete, onClick không được định nghĩa trong JUI Autocomplete options.

Cheers

+1

Cảm ơn giải pháp tuyệt vời này. Tôi đã cố gắng js: function (event, ui) trong htmlOptions và nó không hoạt động. Đó là một điều tôi nhận được khái niệm cơ bản đầu tiên :) – Bujji

0

Cũ chủ đề, nhưng đối với người mới, người đất lên đây, nó đơn giản để thêm một html placeholder thuộc tính trong Yii CAutoComplete. Xem mã bên dưới và thêm vào dòng htmloptions:

<?php $this->widget('CAutoComplete', array(
'model'=>$model, 
'attribute'=>'tags', 
'url'=>array('suggestTags'), 
'multiple'=>true, 
'htmlOptions'=>array('size'=>50,'placeholder'=>'Seperate tags with commas'), 
)); ?> 
Các vấn đề liên quan