我正在创建一个Intranet网站,我需要根据用户点击的内容传递一个值。
我认为将这些数据传递到asp.net的最好方法是创建一个表单输入,只需要文本类型,然后根据用户点击的内容在javascript中更改其值,然后在asp.net中只会request
它的价值。
代码!
<asp:Button ID="HiddenButton" runat="server" OnClick="HiddenButton_Click" />
<input type="text" style="display:none" runat="server" id="HiddenValue" value = "hello" />
<div class="admin-page-setting-class" onclick="OptionClicked('userAccounts')">
View User Accounts
</div>
现在是javascript
function OptionClicked(option)
{
alert("hi");
var hiddenInput = document.getElementById('HiddenValue');
alert("hi");
hiddenInput.value = option;
alert("hi");
var btnHidden = $('#<%= HiddenButton.ClientID %>');
if (btnHidden != null)
{
btnHidden.click();
}
}
我的问题是,无论我尝试做什么都行不通,我永远无法改变输入HiddenValue
的任何值。它永远不会到达最后的警报。我很难过。这怎么可能不起作用?
答案 0 :(得分:0)
在javascript中
<script>
function OptionClicked(option) {
document.getElementById('HiddenValue').value = option;
document.getElementById('HiddenButton').click();
}
</script>
<form id="form1" runat="server">
<div>
<asp:HiddenField ID="HiddenValue" runat="server" />
<asp:Button ID="HiddenButton" runat="server" OnClick="HiddenButton_Click" />
<div class="admin-page-setting-class" onclick="OptionClicked('userAccounts')">
View User Accounts
</div>
</form>
在服务器中,你背后的代码
protected void HiddenButton_Click(object sender, EventArgs e)
{
string yourData = HiddenValue.Text;
}
在jquery中
<script>
jQuery(document).ready(function () {
$(".admin-page-setting-class").click(function () {
$('#HiddenValue').val($(".admin-page-setting-class").text());
$('#HiddenButton').click();
});
});
</script>
<form id="form1" runat="server">
<asp:HiddenField ID="HiddenValue" runat="server" />
<asp:Button ID="HiddenButton" runat="server" OnClick="HiddenButton_Click" />
<div class="admin-page-setting-class">
View User Accounts
</div>
</form>