Javascript隐藏IE中不工作的选择框元素
嘿,我不确定我是不是走对了路。我有两个不同的选择框。需要做的是,当框1中的某个项目被选中时,框2中的某些项目被隐藏。我所做的在FF中很好,但在IE…思想中不起作用Javascript隐藏IE中不工作的选择框元素,javascript,internet-explorer,forms,Javascript,Internet Explorer,Forms,嘿,我不确定我是不是走对了路。我有两个不同的选择框。需要做的是,当框1中的某个项目被选中时,框2中的某些项目被隐藏。我所做的在FF中很好,但在IE…思想中不起作用 <div> <label class="form_label">Apparel</label> <select id="Choices" size="1" style="clear: right;" onchange"changeThis();">
<div>
<label class="form_label">Apparel</label>
<select id="Choices" size="1" style="clear: right;" onchange"changeThis();">
<option value="select">Pick Your Product</option>
<option value="1">choice 1</option>
<option value="2">choice 2/option>
<option value="3">choice 3</option>
</select>
</div>
<div>
<label class="form_label">Size</label>
<select id="Sizes" size="1" style="clear: right;">
<option value="select">Choose Your Size</option>
<option value="SC">Small Child</option>
<option value="IC">Intermediate Child</option>
<option value="MC">Medium Child</option>
</select>
</div>
衣服
选择你的产品
选择1
选项2/选项>
选择3
大小
选择你的尺码
小孩
中间儿童
中等儿童
功能转换(选择)
{
var item=document.getElementById(“选项”);
var size=document.getElementById(“大小”);
var selitem=item.options[item.selectedIndex].value;
如果(selitem==“2546”)
{
对于(i=0;i请尝试使用此选项:
结果是:
size[i].style.visibility='hidden';
编辑
哦,欢迎使用StackOverflow!尝试使用以下选项:
结果是:
size[i].style.visibility='hidden';
编辑
哦,欢迎使用StackOverflow!这取决于您如何触发调用changeThing()函数的事件。IE9不太确定,但IE8和背面的onChange事件存在问题。它基本上避免了IE中的onClick。您必须改为使用onClick
如果您使用jQuery触发事件,onchange事件应该在所有浏览器(甚至IE)中都能正常工作。不确定其他Javascript库是如何做到这一点的。这取决于您如何触发调用changeThing()的事件函数。不确定IE9,但IE8和背面的onChange事件有问题。它基本上避免了IE中的onChange事件。您将不得不使用onClick
如果您使用jQuery触发事件,onchange事件应该在所有浏览器(甚至IE)中都能正常工作。不确定其他Javascript库是如何工作的。您需要完全删除此选项才能在IE中工作
大小。删除(i);
因此,您需要将选项存储在数组中,并在需要时将其加载回。您需要完全删除此选项,以使其在IE中工作
大小。删除(i);
因此,您需要将选项存储在数组中,并在需要时将其加载回。我几天前遇到了相同的问题。IE不允许对选项元素使用可见:隐藏或显示:无
您可以解决将select1的选项存储在变量中的问题。此变量将具有所有可能的值,因此,当select1的值更改时,您可以删除select2的所有值,然后从变量中获取所需的选项以放入select2
总结如下:
将所有可能的值存储在变量中
更改select1时,请删除select2的所有选项
过滤您需要的选项(从步骤1的变量中获取这些值),并将其放入select2
几天前我也遇到了同样的问题。IE不允许对选项元素使用可见:隐藏或显示:无
您可以解决将select1的选项存储在变量中的问题。此变量将具有所有可能的值,因此,当select1的值更改时,您可以删除select2的所有值,然后从变量中获取所需的选项以放入select2
总结如下:
将所有可能的值存储在变量中
更改select1时,请删除select2的所有选项
过滤您需要的选项(从步骤1的变量中获取这些值),并将其放入select2
您无法显示:none remove将完全删除它,如果您不希望用户选择它,请使用disabled
function changeThing()
{
var item = document.getElementById("Choices");
var size = document.getElementById("Sizes");
var selitem = item.options[item.selectedIndex].value;
if(selitem == '3')
{
for(i=1; i<2; i++) // filter logic here
{
size[i].disabled = true; //false - to reset
//alert(size[i]);
}
}
size.selectedIndex = 0; // reset the selection so a disabled item may not be selected. }
函数更改()
{
var item=document.getElementById(“选项”);
var size=document.getElementById(“大小”);
var selitem=item.options[item.selectedIndex].value;
如果(selitem==“3”)
{
对于(i=1;i您无法显示:none remove将完全删除它,如果您希望用户不选择它,请使用disabled。您可以这样做
function changeThing()
{
var item = document.getElementById("Choices");
var size = document.getElementById("Sizes");
var selitem = item.options[item.selectedIndex].value;
if(selitem == '3')
{
for(i=1; i<2; i++) // filter logic here
{
size[i].disabled = true; //false - to reset
//alert(size[i]);
}
}
size.selectedIndex = 0; // reset the selection so a disabled item may not be selected. }
函数更改()
{
var item=document.getElementById(“选项”);
var size=document.getElementById(“大小”);
var selitem=item.options[item.selectedIndex].value;
如果(selitem==“3”)
{
对于(i=1;i您可能会在上找到一些见解您可能会在上找到一些见解