/ / IE- Esconder dropdown / adicionar ou remover usando Jquery? Como posso obter o mesmo resultado no IE como o firefox? - jquery, html, internet-explorer, show-hide

IE- Esconder dropdown / adicionar ou remover usando Jquery? Como posso alcançar o mesmo resultado no IE como o firefox? - jquery, html, internet-explorer, mostrar-ocultar



Eu preciso para alcançar o seguinte cenário.Eu fiz e ele funciona no firefox.Mas não no IE.

Sceario:

  1. Se eu selecionar o valor da primeira lista suspensa, as listas suspensas restantes deverão ocultar essas opções.
  2. Se eu desmarcar a opção da primeira lista suspensa, ela deverá estar disponível para os dropdowns restantes.
  3. Continua até o último dropdown.

eu tenho o seguinte código

HTML

<div>
<select data-label="Question 1" class="u85" id="test1">
<option value="Please select...">Please select...</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
</select>
</div>
<div>
<select data-label="Question 1" class="u85" id="test2">
<option value="Please select...">Please select...</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
</select>
</div>
<div>
<select data-label="Question 1" class="u85" id="test3">
<option value="Please select...">Please select...</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
</select>
</div>
<div>
<select data-label="Question 1" class="u85" id="test4">
<option value="Please select...">Please select...</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
</select>
</div>

Então eu tenho o jQuery seguinte

$(document).ready(function(){
var selectionlist=[];
$("select").change(function()
{
var currentid=$(this).attr("id");
$(this).val()!=="Please select..."?selectionlist[$(this).parent().index()]=$(this).val():selectionlist[$(this).parent().index()]="";
$("select").each(function(i){
var currentselectboxid=$(this).attr("id");
if($(this).val()!=="Please select...")
selectionlist[i]=$(this).val();

$("#"+$(this).attr("id")+" option").each(function(){

$.inArray($(this).val(),selectionlist)!=-1?$(this).hide():$(this).show();
});
});

});
});

Isso funciona bem no Firefox.Mas não no IE.Eu já encontrei algo no google.

JQuery Hide Option não funciona no IE e no Safari

Se eu desabilitá-lo, ele funciona bem. Mas minha exigência é ocultar e mostrar. Eu tento adicionar e remover as opções. Mas não obtendo sucesso.

Como posso obter o mesmo resultado como o firefox?

Desde já, obrigado.

Respostas:

0 para resposta № 1

Esta resposta depende de onde você está recebendo o seuopções de, mas eu seguraria o conjunto em uma coleção. Cada um teria uma propriedade chamada "selecionada" e definida como "falsa" no início. Em seguida, criaria cada um dos menus suspensos usando essa coleção e criaria apenas a opção se o valor selecionado do item fosse definido como false. Quando uma lista suspensa muda, defina o valor "selecionado" para o item correspondente como "true" e reconstrua os dropdowns restantes, dessa forma você não terá que lidar com esconder / mostrar ou desabilitar uma opção.


0 para resposta № 2

Isso pode ajudar ...

Eu fiz um plugin jQuery que deve ajudá-lo. Com isso, você faria isso:

$("#selection1").hideOption("1");
$("#selection1").showOption("1");

Você pode ocultar e mostrar o quanto quiser - eles mantêm a ordem original. Funciona em todos os navegadores. Você pode ver isso neste exemplo: jsFiddle - Alternar opções suspensas

Você pode obter o Alternar plug-in de opções suspensas. Se você não gosta de plug-ins, apenas copie o código JavaScript dele para o arquivo JavaScript do seu próprio projeto. Veja o Leia os documentos link no plug-in para mais informações!