【发布时间】:2011-06-20 23:38:54
【问题描述】:
我继承了一些被告知要集成到我们的 ASP.NET 站点中的 JavaScript。我认为这很简单,但结果却是一个挑战。
代码如下所示:
<SELECT id="Question1" name="Question" onchange="updateQuestion();">
<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>
目标是从这个 HTML 控件中获取值到 ASP.NET 中,但是这个控件本身是由另一块 javascript 动态生成的,所以我不能只是将它更改为 asp.net 控件。我的解决方案是添加 onchange="updateQuestion();"方法,此 JS 将获取这些 SELECT 标记并将值放入 ASP.NET 控件中:
function updateSecQ() {
var sQuestion = document.getElementById('<%=sQuestion.ClientID%>');
sQuestion.Value = "";
var questions = document.getElementsByName('Question');
for (question in questions) {
if (questions[question].value != null)
sQuestion.Value += questions[question].value + ",";
}
alert(sQuestion.Value);
}
如您所见,它正在寻找更新 ASP.NET 控件:
<asp:HiddenField ID="sQuestion" runat="server" value="" />
这似乎一切正常,但是当我在表单提交时转到服务器端时,我看到 sQuestion.Value 仍然是 = ""。
我不太确定我在这里做错了什么,任何输入将不胜感激。感谢您的宝贵时间。
【问题讨论】:
-
您尝试在页面生命周期的哪个部分读取 sQuestion.Value?
标签: javascript asp.net