我有一个包含三个隐藏字段的 ASP.NET 页面。 (如果我可以让它工作,就可以做一个。只是表明我已经尝试了几件事。)
<input type="hidden" id="hiddenSkillId1" runat="server" />
<input type="hidden" id="hiddenSkillId2" />
<asp:HiddenField ID="hiddenSkillId3" runat="server"/>
我还有一个被 AJAXControlToolKit.AutoCompleteExtender.OnClientItemSelected 事件调用的 JavaScript 函数:
<script type="text/javascript">
function SkillPartialMatchSelected(source, eventArgs ) {
document.getElementById("ctl00_Content_hiddenSkillId1").Value = eventArgs.get_value();
document.getElementById("hiddenSkillId2").Value = eventArgs.get_value();
document.getElementById("ctl00_Content_hiddenSkillId3").Value = eventArgs.get_value();
}
</script>
使用断点并检查值,我已经确认在客户端设置了值。
最后,我为连接到 LinkButton OnClick 事件的页面提供了 C# 代码。
protected void AddSkillToProspect(object sender, EventArgs e)
{
string selectedKey1 = Request.Form[hiddenSkillId1.ClientID];
string selectedKey2 = Request.Form["hiddenSkillId2"];
string selectedKey3 = Request.Form[hiddenSkillId3.ClientID];
string selectedItem = SkillNameBox.Text.Trim();
...
}
所有三个 selectedKey 值都为空,但来自 ASP.NET 文本编辑器的 selectedItem 值有一个值。
从我读过的内容来看,其中之一应该有效。我错过了什么吗?我该怎么做才能从客户端的 JavaScript 函数中将值返回到服务器端?
最佳答案
该问题与 JavaScript 中的区分大小写有关。尽管您已为这些字段设置了 .Value,但这与 .value 不同。更改您的 javascript 以设置 .value,您应该已经全部设置好了。
<script type="text/javascript">
function SkillPartialMatchSelected(source, eventArgs )
{
document.getElementById("ctl00_Content_hiddenSkillId1").value = eventArgs.get_value();
document.getElementById("hiddenSkillId2").value = eventArgs.get_value();
document.getElementById("ctl00_Content_hiddenSkillId3").value = eventArgs.get_value();
}
</script>
关于asp.net - 获取隐藏字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11674844/