代码之家  ›  专栏  ›  技术社区  ›  Don

IE 8和getElementById()动态抛出错误

  •  0
  • Don  · 技术社区  · 14 年前

    我有一个函数,每当select发生变化时就会调用它。如果select的ID为“foo”,那么后面会有一个ID为“foo\u other”的文本字段,默认情况下,该字段的样式为display:none".

    如果从select中选择了一个值“Other”,那么函数应该显示文本字段,并将焦点设置为它。如果选择了“其他”以外的内容,则应隐藏该字段并删除输入的内容。

    在FF中工作,即抛出错误“Object required”。我试图避免对动态变量执行eval()。。。感谢您的帮助。

    代码:

    function checkOther(inObj){
        var other_form_id = inObj.name + "_other"; 
        if(inObj.value == 'Other')
        {
            document.getElementById(other_form_id).style.display = 'inline';
            document.getElementById(other_form_id).focus();
        }
        else
        {
            document.getElementById(other_form_id).style.display = 'none';
            document.getElementById(other_form_id).value = '';   
        }
    }
    
    2 回复  |  直到 14 年前
        1
  •  0
  •   Pekka    14 年前

    我猜你在一个文档中有多个ID(这是无效的),IE比FF更挑剔。会是这样吗?

        2
  •  0
  •   Nikolay Ivanov    13 年前

    微软的傻瓜们得到了第一个 身份证或姓名 . 我有一个动态生成的javascript,一个html元素(input)的名称和id是不同的。但是IE8的白痴们得到的不是具有指定ID的元素,而是具有该名称的第一个元素。

    我相信他们是白痴,即使我是工作15年以上的windows(visual studio)开发人员,但我没想到这么愚蠢。。。

    即使后来, 希望这能帮助别人,而不是文章的作者。