2012-08-01 31 views
7

Tôi đang sử dụng combobox ExtJS. Có một con trỏ gõ khi tập trung vào combobox. Tôi đã cố gắng triển khai editable: false khi tạo combobox, nhưng nó chỉ giúp cho chrome.Xóa con trỏ nhập từ combobox

Ngoài ra, chức năng này cũng được hiển thị trong FireFox và IE.

Ý tưởng khác là đặt disabled trên trường nhập trong combobox. Khi tôi đã làm nó theo cách thủ công, nó đã giúp.

Nhưng khi tôi viết tiếp theo

Ext.get('bu-encodingcount-combobox').select('input').set({disabled:'disabled'});

nó không giúp đỡ - không biết, có thể biểu thức là sai.

Trả lời

12

Lý do bạn thấy con trỏ là do hộp tổ hợp lấy tiêu điểm, vì vậy cách dễ nhất để xử lý việc này là di chuyển tiêu điểm vào bộ chọn thả xuống bất cứ khi nào kết hợp lấy nét.

Chỉ cần thêm onFocus cấu hình này để cấu hình combobox của bạn:

// example combobox config 
xtype: 'combo', 
allowBlank: false, 
forceSelection: true, 
valueField:'id', 
displayField:'name', 
store: myStore, 

// add this "onFocus" config 
onFocus: function() { 
    var me = this; 

    if (!me.isExpanded) { 
     me.expand() 
    } 
    me.getPicker().focus(); 
}, 

Ngoài ra, tôi sẽ chỉ khuyên bạn nên làm điều này nếu đây là một combobox forceSelection: true. Nó sẽ làm hỏng khả năng người dùng nhập bất kỳ thứ gì vào trường.

+0

cách tạo con trỏ khi di chuột đến trường kết hợp? – freestyle

+0

Ngoài ra, nếu cửa hàng của bạn đang được tải trên nhấp thả xuống, bạn có thể tải cửa hàng trong sự kiện tiêu điểm như vậy: myStore.load(); Ban đầu đây là vấn đề của tôi, cho đến khi tôi nhận ra các cửa hàng chưa được nạp .. Hy vọng điều này có thể giúp đỡ người khác. –

+1

Để buộc điều này làm việc trong tất cả các trình duyệt trong Ext 5, bây giờ bạn phải sử dụng me.getPicker(). Focus (true); –

3

Bạn có thể thêm các cấu hình,

có thể chỉnh sửa: false

Sau đó cư xử như các Combo bình thường.

+0

Thật không may có một vấn đề được biết rằng điều này chỉ hoạt động trên chrome, đó là những gì điều này đang cố gắng giải quyết. –

0

Thử -

Đối với IE

combo.inputEl.set ({khuyết tật: 'disabled'});

Đối với Firefox -

combo.inputWrap.set ({khuyết tật: 'disabled'});

Đối với Chrome -

combo.inputCell.set ({khuyết tật: 'disabled'});

Điều này làm việc tốt.

Các vấn đề liên quan