我有一个DropDownList,我希望在Javascript字符串中使用所选索引的文本,方法是在隐藏字段中声明它,然后通过C#声明,以便在页面重新加载时不清除Javascript变量。 / p>
我想知道一些关于隐藏字段是否正确的建议,以及如何将隐藏字段值声明为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>
非常感谢,
答案 0 :(得分:2)
使用隐藏字段并不罕见。我不会在你的代码中看到你在哪里写它。
答案 1 :(得分: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);
希望这有帮助。