2017-02-23 55 views
1

Я пытаюсь отключить мой вариант выбора начальной загрузки, используя javascript.отключить функцию выбора начальной загрузки, используя javascript

Я знаю, как отключить «нормальный выберите вариант», но при использовании Bootstrap выбрать его как раз не работает (его неработающий/неактивно, но я все еще могу выбрать его) здесь jsfidle

<select name="dropdownBranch" id="dropdownBranch" class="selectpicker" data-live-search="true"> 
    <option value="0">Choose Number</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
</select> 
<select id="pureDropDown"> 
    <option value="0">Choose Number</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
</select> 
<button onclick="disableDropdown()">disable</button> 



function disableDropdown(){ 
var selectobject; 
selectobject=document.getElementById("dropdownBranch").getElementsByTagName("option"); 
    selectobject[3].disabled=true; 

selectobject=document.getElementById("pureDropDown").getElementsByTagName("option"); 
    for(z=0;z<selectobject.length;z++){ 
     selectobject[z].disabled=true; 
     } 

} 

я пытаюсь удалить конкретный вариант тоже и тот же случай произойдет (работа на обычном раскрывающемся списке, но не работает на начальной загрузки выберите)

ответ

3

Как описано here, вам необходимо повторно отобразить выборщик после изменения отключенного свойства опции.

Это должно сделать трюк: (JSFiddle)

function disableDropdown(){ 
    var selectobject; 
    selectobject = document.getElementById("dropdownBranch").getElementsByTagName("option"); 
    selectobject[3].disabled = true; 
    $('#dropdownBranch').selectpicker('render'); 
} 
+0

Спасибо, что это работа, но это не относится к дереву, используя этот https: //www.patosai. com/projects/tree-multiselect любая идея? –

0

Попробуйте

function disableDropdown(){ 
    var selectobject; 
    selectobject=document.getElementById("dropdownBranch"); 
    selectobject.options[3].disabled=true; 

    selectobject=document.getElementById("pureDropDown").getElementsByTagName("option"); 
for(z=0;z<selectobject.length;z++){ 
    selectobject[z].disabled=true; 
} 

}

+0

Это не работает, (ошибка в этой строке i pressume selectobject.options [3] .disabled = true; ) –

0

использование JQuery

$("#dropdownBranch").attr("disabled", "disabled");

или чистый JavaScript одно:

function disableDropdown(){ 
    document.getElementById("dropdownBranch").setAttribute("disabled", "disabled"); 
} 

JSFiddle

+0

Я хочу отключить определенный параметр выбора, а не отключить select (который отключит все опции выбора) –

+0

oh, в этом случае попробуйте добавить этот код: 'selectobject = document.getElementById (" dropdownBranch "). GetElementsByTagName ("вариант"); selectobject [3].setAttribute ("disabled"); ' , прежде чем вы вызываете ' $ ('# dropdownBranch'). selectpicker(); ' –

0

Yo. Вы не просто $. («SelectedSelect»). Css («отключено», «отключено»);

Хорошо. Приношу свои извинения за недостаток усилий. Я понимаю, что мой ответ был легкомыслен, и я решил работать над этим больше. Редактировать:

Это то, что я встретил на вашем jsfiddle. Я получаю ошибки, если я использую .css, .val, .prop или .attr. Это заставляет меня думать, что либо jquery не работает должным образом на jsfiddle для меня, либо я делаю что-то неправильно.

Я копаю глубже. Я посмотрел на html. В jsfiddle создается надбавка bootstrap над тегом select. Я отредактировал combobox li со значением 3, чтобы класс «отключен», и был получен желаемый результат.

Это привело меня к этому коду:

function disableDropdown(){ 
    var selectobject, optionList; 
    selectobject=document.getElementById("dropdownBranch") 
    .getElementsByTagName("option"); 
    selectobject = $("li"); 
    selectobject[3].addClass("disabled"); 


    selectobject=document.getElementById("pureDropDown") 
    .getElementsByTagName("option"); 
    for(z=0;z<selectobject.length;z++){ 
     selectobject[z].disabled=true; 
    } 

} 

Что вам нужно сделать, это получить доступ к начальной загрузки создан элемент, и изменить его, чтобы отключить класс. Bootstrap должен заботиться обо всем остальном. Я считаю, что вы можете сделать это в своей собственной среде, но jsfiddle раздражает, поэтому я не буду продолжать работать над этим.