簡體   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