2013-07-23 3 views
0

У меня есть код, который отлично работает в Firefox, но не в IE. Желательным решением является то, что после того, как пользователь выберет переключатель, появится раскрывающийся список, содержащий параметры, относящиеся к категории переключателей. Однако, в настоящее время при использовании IE, когда пользователь выбирает кнопку радио он покажет падение вниз, но будет иметь все варианты, включая те, которые относятся к радио-кнопке, который не выбранjava script/jquery не работает в IE

вот код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Tools</title> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript" charset="utf-8"></script> 
<script src="jquery.chained.js" type="text/javascript" charset="utf-8"></script> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script> 

<link rel="stylesheet" href="style.css" /> 
<script type="text/javascript" src="infratool.js"></script> 

</head> 

<body class="oneColFixCtrHdr"> 

<div id="container"> 
<div id="header" style="background-color:#7BD12E"> 
<h1 align="Center" style="color:#FFF;"></h1> 
<!-- end #header --></div> 
<form id="form1" name="form1" method="post" action=""> 
<table width="392" border="0"> 
<tr> 
<td align="center"> 
<label><input name="Radio1" type="radio" id="Radio1" value="Radio1" onclick="showSelect();" />Radio1</label> 
<label><input name="Radio2" type="radio" id="Radio2" value="Radio2" onclick="showSelect();" />Radio2</label> 
<input type="radio" name="Radio3" id="Radio3" value="Hidden" style="display:none" checked="checked" /> 
</td> 
</tr> 
<tr> 
<td align="center">&nbsp;</td> 
</tr> 
</form> 
<div id="div-id" align="center"><select name="Category" id="Category" class="hide"> 
<option value=" Radio1 Radio2" selected="selected">--</option> 
<option value="1 Radio1">1</option> 
<option value="2 Radio1">2</option> 
<option value="3 Radio1">3</option> 
<option value="4 Radio2">4</option> 
<option value="5 Radio2">5</option> 
<option value="6 Radio2">6Domain</option> 
</select><input type="submit" value="Go" id="submit"/> 
</div> 
</table> 
</div> 
</body> 
</html> 

, а вот моя ява скрипты

//Show Select option after clicking Radio button: 
function showSelect() { 
var select = document.getElementById('Category'); 
select.className = 'show'; 
} 

//Select option, separates the link from Class 
$(function(){ 
var select = $('#Category'), 
options = select.find('option'); 
$('[type="radio"]').click(function(){ 
var visibleItems = options.filter('[value*="' + $(this).val() + '"]').show(); 
options.not(visibleItems).hide(); 
if(visibleItems.length > 0) 
{ 
select.val(visibleItems.eq(0).val()); 
} 
}); 
}); 

$(function() { 
$("#submit").hide(); 
$("#Category").change(function() { 
window.location = $(this).val().split(" ")[0]; 
if(loc) 
window.location.href = loc; 
}) 
}); 

Я пытался использовать инструменты для разработчиков IE, но безрезультатно.

+0

Какой версии IE? –

+3

Просьба предоставить [jsFiddle] (http://jsfiddle.net) код. –

+0

Элементы 'option' не могут быть скрыты в некоторых браузерах. Вам нужно будет удалить и добавить их или просто отключить/включить их. –

ответ

1

Вы не можете просто показать/скрыть <option> элементов. Вы должны удалить их из раскрывающегося списка.

Лично я бы предложил клонировать поле выбора при загрузке страницы, а затем использовать это в качестве базы для повторного фильтра повторного фильтра исходного раскрывающегося списка.

+0

у вас будет возможность показать, как это работает для меня? –

0

IE не просто позволит вам скрыть варианты.

Может быть, вы могли бы вместо того, чтобы отключить эту функцию с помощью:

.prop('disabled', true); 
+0

@Jnatalzia может сказать мне, где поставить этот '.prop ('disabled', true),' я говорю мне заменить 'options.not (visibleItems) .hide();' –