【发布时间】:2011-02-03 23:12:34
【问题描述】:
我看到这个问题有很多相关的问题,通读一遍我猜这是一个 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标签调用:
<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 中它是一个空字符串,支持我只是没有找到正确标签的想法。非常感谢任何输入。谢谢。
【问题讨论】:
-
这段代码用 asp.net 控件替换为 textarea 在两者中都可以正常工作
标签: javascript asp.net internet-explorer firefox