我繼承了一些我被告知要集成到ASP.NET網站的JavaScript。我認爲這將是直接的,但它是一個挑戰。通過JavaScript更新ASP.NET中的隱藏字段
的代碼看起來是這樣的:
<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? – 2011-02-03 21:29:35