2013-09-25 101 views
7

我使用selectize.js風格的文本框,它工作正常。selectize.js - 如何禁用選定項目後的閃爍光標?

$("select[name='somename']").selectize({ 
    valueField: 'id', 
    labelField: 'name', 
    searchField: 'name', 
    options: selectableThings, 
    render: { 
    option: function(item, escape) { 
     return render(someTemplate, item); 
    }, 
    item: function(item, escape) { 
     return render(someTemplate, item); 
    } 
    } 
}); 

不過,我有一個項目的範圍有限,不希望對光標(閃爍|)啓用所有的時間。我已經通過the API docs和源搜索,但找不到任何明顯的。

有什麼內置的禁用閃爍的光標?

編輯最初有這個'禁用輸入',但它看起來像光標不能用於輸入(和禁用輸入仍然顯示光標)。

回答

9

選擇性不是特別設計用來作爲選擇裝飾者。光標來自<input>元素,它允許用戶放棄選項。隱藏輸入會在用戶輸入時產生奇怪的行爲。另外,當控件爲空時,輸入用於顯示佔位符文本。

從技術上講,你可以隱藏光標(輸入)與CSS:

/* option a: make transparent */ 
.selectize-input input { 
    color: transparent !important; 
} 

/* option b: position off-screen */ 
.selectize-input input { 
    position: absolute !important; 
    top: -9999px; 
    left: -9999px; 
} 

但同樣,這是會感到時髦。我會考慮編寫一個禁用鍵盤處理的decorator_only插件,但這不是當前的優先事項。

http://jsfiddle.net/mARDE/1/

+0

您可以只設置'maxOptions:1',它會作爲一個「飾'select'行動「 – Roi

+0

@roi no,'maxOptions:1'和'maxItems:1'沒有幫助.. –

1

您還可以使用CSS文本縮進將光標移動到屏幕之外:

input { 
    text-indent: -100px; 
}