【问题标题】:Pass values to an asp hidden field from an external .js file将值从外部 .js 文件传递​​到 asp 隐藏字段
【发布时间】:2013-02-01 12:55:36
【问题描述】:

我正在尝试将我从外部 js 文件中获取的值传递到我的 .aspx 页面中。

这是我的 .js 文件代码:

function GETdateTime() {
    var d = new Date()
    var date = new String(d.getDate() + "/" + (d.getMonth() + 1) + "/" + d.getFullYear());
    var time = new String(d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds());
    document.getElementById("test").outerHTML = "<br>" + date + "<br>" + time;
}

在我的 .aspx 页面中,我正在调用上述函数并检索如下结果:

 <form id="form1" runat="server" method =" post">
    <span id = "test"> </span>

    <script type =" text/javascript" src="JavaScript1.js"  >
    </script>     

     <script type ="text/javascript">
            GETdateTime();
     </script>
</form>

我想要实现的是我计划拥有一个HiddenField,它将存储date, time and other things,然后获取HiddenField 中的值并将它们传递给我后面的vb.net 代码以存储它们在一个字符串中。问题是我已经看到了很多方法,但我有点困惑,比如here,hereand here。我也在考虑效率、一致性、灵活性和整体性能。任何想法或建议将不胜感激。

【问题讨论】:

标签: asp.net vb.net


【解决方案1】:

如果你有这样的表格:

<form id="form1" runat="server" method =" post">
    <asp:HiddenField runat="server" id="test" />
    <script type =" text/javascript" src="JavaScript1.js"  >
    </script>     

     <script type ="text/javascript">
            GETdateTime("<%=test.ClientID %>");
     </script>
</form>

比你需要一个javascript:

function GETdateTime(hiddenFieldID) {
    var d = new Date()
    var date = new String(d.getDate() + "/" + (d.getMonth() + 1) + "/" + d.getFullYear());
    var time = new String(d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds());
    document.getElementById(hiddenFieldID).value = "<br>" + date + "<br>" + time;
}

然后,在提交表单后的代码中,要使用 JS 设置值,您可以简单地这样做:

hiddenFieldVal = test.Value 

【讨论】:

  • 好的,所以在function GETdateTime(hiddenFieldID) hiddenFieldID 中我必须像function GETdateTime (test) also the same for document.getElementById(test) 那样写下来吗?或者只是将括号留空,因为它通过我的 html 中的函数传递?
  • 看我的回答。有一行:GETdateTime("&lt;%=test.ClientID %&gt;"); - 这就是你应该通过它的方式。
  • test.Value - 提交表单后并在代码后面?另外——你检查过是否没有 JS 错误吗?
  • 如果我在Visual Studio中做js文件,我没有得到document.getElementByID(test).value属性。我写. 时得到的相关内容是outerHTML, outerText, InnerText, InnerHTML。 Visual Studio 不会告诉您 .js 文件中的错误。我将它复制到 DreamWeaver 中,它并没有说有错误,但是它确实采用了 .value 属性。另外,我没有提交表单的按钮,一切都应该在 asp.net 中的 PageLoad 事件和 .js 外部文件中的 window.onload 上运行。
  • 第一:你为什么这样做:document.getElementByID(test)?你看到我的代码了吗?它拥有使您的代码在 asp.net 下运行所需的一切。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-28
  • 2019-03-30
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
相关资源
最近更新 更多