[英]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.