asp.net GetElementByid()。value元素/属性不可用

时间:2014-05-05 22:03:00

标签: javascript asp.net vb.net visual-studio-2010

这是另一个让我撕掉我头发左边的东西。

我最新的asp.net页面是我刚刚为一个内部数据库工具拼凑而成的东西。它使用标准的VS 2010设计模板,这意味着它使用site.master页面。我提到这个是因为它可能与我的问题有关。

我使用asp:textbox控制而不是input type="text"。当一个文本框模糊时,'我需要在代码隐藏中运行一个sub,它将根据文本框中输入的信息进行数据库查找。

我看到的一切是我需要添加asp:hiddenfield来触发代码隐藏事件来进行查找。所以我在JavaScript脚本中使用document.GetElementById方法来设置隐藏字段中的值。它应该做的是:document.GetElementById('HiddenInfo').value = "yada-yada"

我的问题是VS开发环境没有识别GetElelmentById命令的.value属性。例如,正如它所习惯的那样,VS会在您键入时给出代码提示。当我到达我想要插入.value参数的位置时,它不会显示在建议列表中。见插图:

enter image description here

正如您所看到的,输入v并不会显示.value参数。

我已尝试通过ClientID和使用jquery获取它,但没有任何作用。疯狂的是我之前使用我开发的另一个网页做了这个,但唯一的区别是没有一个site.master页面。

我花了好几个小时试图在网上找到答案,没有什么与我的问题完全一样。

有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

那是一个asp .net元素,所以你必须得到它的信任我相信。这是在jquery:

$('#<%=HiddenInfo.ClientID %>').val();

答案 1 :(得分:0)

几个小时后,我终于找到了答案。在更改HiddenInfo字段值的JavaScript函数中,添加了一行(我猜)强制回发,然后在后面的代码中触发_ValueChanged事件:

<script language="javascript" type="text/javascript">
function CheckCC() {
    document.getElementById('HiddenInfo').value="YES";
    <%= ClientScript.GetPostBackEventReference(HiddenInfo, "") %>;
}

我挖出了答案here

似乎是一个非常模糊的解决方案。

奇怪的是,在我之前的asp.net设计中,这并不是必需的。这让我很困惑,我仍然不理解它。但至少我现在可以前进了。

感谢大家的建议。