【问题标题】:asp.net GetElementByid().value element/property not availableasp.net GetElementByid().value 元素/属性不可用
【发布时间】:2014-05-05 22:03:00
【问题描述】:

这是另一个让我扯掉我头发的东西。

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

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

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

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

如您所见,输入 v 不会调出 .value 参数。

我尝试通过 ClientID 和使用 jquery 来获取它,但没有任何效果。疯狂的是,我以前开发过另一个网页,但唯一的区别是没有 site.master 页面。

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

有什么想法吗?

谢谢!

【问题讨论】:

  • 它不会总是出现在智能感知中,但这并不意味着它不起作用。
  • Intellisense 通常不能很好地与 Javascript 配合使用。
  • 即使完全输入也不行。
  • 有同样的问题。参考这个链接stackoverflow.com/questions/9101904/…

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


【解决方案1】:

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

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

【讨论】:

  • 我试过了,只是我没有把哈希标签放在开头。
  • (哈希标签是 jquery 特有的。)
【解决方案2】:

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

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

我挖出了答案here

似乎是一个非常晦涩的解决方案。

奇怪的是,在我以前的 asp.net 设计中,这不是必需的。那是真正让我困惑的地方,我仍然不明白。但至少我现在可以继续前进。

感谢大家的建议。

【讨论】:

    猜你喜欢
    • 2017-03-09
    • 2012-08-31
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    相关资源
    最近更新 更多