javascript - 通过 JavaScript 更新 ASP.NET 中的隐藏字段

标签 javascript asp.net

我继承了一些 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 block 动态生成的,所以我不能只将它更改为 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 仍然 = ""。

我不太确定我在这里做错了什么,任何意见将不胜感激。感谢您的宝贵时间。

最佳答案

不知道 ASP.net,但我知道在浏览器 DOM 中,隐藏字段的值是全部小写的值,而不是 Value。它是浏览器将提交的值属性,通过设置 sQuestion.Value,您设置它的提交值失败。

关于javascript - 通过 JavaScript 更新 ASP.NET 中的隐藏字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4891907/

相关文章:

javascript - 图片内的文字没有响应

javascript - Elm - 防止默认订阅

javascript - 打印到打印机时隐藏/显示 div

javascript - 通过从服务器调用 javascript 关闭 RadWindow

css - Web 表单和 Bootstrap 表单问题

asp.net - 对于Rich Text编辑器并转换为HTML,有什么好的免费解决方案?

asp.net - 阻止用户使用 "X"关闭浏览器窗口?

javascript - 更改 Kendo UI 中的语言

asp.net - 从 VS2008 发布的等效 msbuild 命令

asp.net - Css 文件在 jquery 脚本中没有被正确读取