繁体   English   中英

Firefox vs IE Javascript问题

[英]Firefox vs IE Javascript issue

我看到这个问题有很多相关的问题,并且通过它们阅读我猜这是一个getElementById问题,因为这似乎是其他人的问题,但我不太确定我做错了什么。 以下内容在FireFox中有效,错误控制台上没有消息,并且FireBug显示正确的值:

    function updateSQ() {
        var sQuestion = document.getElementById('<%=sQuestion.ClientID%>');
        sQuestion.value = "";
        var questions = document.getElementsByName('selectQuestion');
        for (question in questions) {
            if (questions[question].value != null)
                            sQuestion.value += questions[question].value + ",";
        }
        alert(sQuestion.value);
    }

此函数由动态生成的html选择标记调用:

<SELECT id="squestion1" name="selectQuestion" onchange="updateSQ();">
<OPTION value="notChosen">--Please Select One--</OPTION> <OPTION value="in">India</OPTION> <OPTION value="de">Germany</OPTION>
<OPTION value="fr">France</OPTION>
<OPTION value="us">United States</OPTION>
<OPTION value="ch">Switzerland</OPTION>
</SELECT>

如您所见,javascript正在尝试更新ASP.NET控件的值: <asp:HiddenField ID="sQuestion" runat="server" value="" />

我们的想法是,当select更改时,它会调用JS并将所有select语句中的值存储到ASP.NET控件中(对于一系列令人生厌的需求和我被要求使用的遗留代码而言,这是一种笨重的工作方式)。

最终警报在Firefox中具有预期值,但在IE7中它是一个空字符串,支持我只是找不到正确标记的想法。 任何输入都非常感谢。 谢谢。

我认为你的问题是getElementsByName

IE中的document.getElementsByName方法无法访问使用Javascript DOM创建的HTML元素。

尝试以下Google查询,并查看有关该主题的大量错误报告和沮丧信息;)

http://www.google.dk/search?sourceid=chrome&ie=UTF-8&q=getElementsByName+ie

IE中的getElementsByName不会返回Array,而是返回Object Use

for (var question  = 0; question < questions.length; question ++)

代替

for (question in questions) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM