1

我有一个 DropDownList,我希望在 Javascript 字符串中使用所选索引的文本,方法是在隐藏字段中声明它,然后通过 C# 声明,以便在页面重新加载时不会清除 Javascript 变量。

我希望得到一些关于隐藏字段是否正确的建议,以及如何将隐藏字段值声明为 Javascrpt 变量。

<asp:DropDownList runat="server" ID="dropCallbackReason" SelectedIndexChanged="riskSeverityDropDown_SelectedIndexChanged" onChange="javascript:updateCallBackReason()" ClientIDMode="Static" >
       <asp:ListItem Text="-- Select Reason --" Value="1"></asp:ListItem>
       <asp:ListItem Text="Booking" Value="6"></asp:ListItem>
       <asp:ListItem Text="Discussing" Value="11"></asp:ListItem>
       <asp:ListItem Text="Contract" Value="45"></asp:ListItem>
</asp:DropDownList>
<asp:HiddenField id="ValueHiddenField" value="" runat="server"/>

<script type="text/javascript">
      function updateCallBackReason() {
      var ddlReason = document.getElementById("<%=dropCallbackReason.ClientID%>");
      callBackReasonPreSring = ddlReason.options[ddlReason.selectedIndex].text;
      callBackReason = callBackReasonPreSring.replace(/ /g, '');
      return callBackReason;
      }
      $(document).ready(function () { updateCallBackReason() });
 </script>

非常感谢,

4

2 回答 2

2

您最好的选择是将您的值存储在一个Session而不是隐藏字段中。这是更清洁的方法。

您可以通过两种方式进行操作,服务器端或客户端。

至于服务器端Session,它非常简单,而客户端Session不常见,您需要在这里使用像这样的外部库:https ://github.com/AlexChittock/JQuery-Session-Plugin

另一种选择是使用Cookies.

//Set cookie
$.cookie("somevar", "5");

// Get cookie
$.cookie("somevar")

//Delete cookie
$.cookie("somevar", null);

希望这可以帮助。

于 2013-06-11T20:37:17.420 回答
2

使用隐藏字段并不罕见。不过,我看不到您在代码中写入它的位置。

于 2013-06-11T11:57:12.053 回答