2016-05-23 30 views
1

如何禁用數據列表中的特定元素?它可以被禁用(變灰)我們完全消失。它只是不應該選擇。在Datalist中禁用元素

這是我的方法,但是這並沒有幫助:

$("#browsers").find("Firefox").prop("disabled", true); 

<input list="browsers"> 

<datalist id="browsers"> 
    <option value="Internet Explorer"> 
    <option value="Firefox"> 
    <option value="Chrome"> 
    <option value="Opera"> 
    <option value="Safari"> 
</datalist> 

FIDDLE

UPDATE:

我只注意到,當我剛剛克隆DataList控件它不工作:

$("#mydiv").append($('.myclass').clone()); 
$("#browsers:eq(1)").find("[value='Firefox']").prop("disabled", true); 

有什麼建議?

UPDATED FIDDLE

回答

4

使用attribute equals selector與價值Firefox

$("#browsers").find("[value='Firefox']").prop("disabled", true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input list="browsers"> 
 

 
<datalist id="browsers"> 
 
    <option value="Internet Explorer"> 
 
    <option value="Firefox"> 
 
    <option value="Chrome"> 
 
    <option value="Opera"> 
 
    <option value="Safari"> 
 
</datalist>

僅供參考,以獲得選項: find("Firefox")簡單地標記名稱搜索元素 Firefox(如: <Firefox>)。

關於jQuery selectors visit here的更多信息。


UPDATE:至於你的問題更新#browsers:eq(1)將選擇什麼。 第一個原因id選擇器只選擇唯一元素,然後eq(1)將嘗試從jQuery選定元素(因爲索引從0:eq())中選擇第二個元素,因此它不選擇任何內容。所以只需避免eq()這將解決問題。

你也可以像這樣

$("#browsers [value='Firefox']").prop("disabled", true); 


FYI選擇相結合:你也只是克隆也使用現有數據列表的 input標籤。