Javascript 如何在代码隐藏中获取HTML输入复选框的选中值
我在modalpopup中使用了一个html输入复选框控件,该控件在Javascript 如何在代码隐藏中获取HTML输入复选框的选中值,javascript,c#,html,asp.net,Javascript,C#,Html,Asp.net,我在modalpopup中使用了一个html输入复选框控件,该控件在onclick事件中运行javascript函数。现在我的挑战是从代码隐藏中获取该控件的checked属性的值,以执行一些行为操作。当我向它添加runat=“server”属性并编写chkIsPrivate.Attributes.Add(“onclick”,“toggleCheckbox()”)时在页面加载中,javascript函数不会启动 我在网上搜索了一个解决方案,但没有找到。我希望有人能帮我 请注意,如果没有runat=
onclick
事件中运行javascript函数。现在我的挑战是从代码隐藏中获取该控件的checked属性的值,以执行一些行为操作。当我向它添加runat=“server”
属性并编写chkIsPrivate.Attributes.Add(“onclick”,“toggleCheckbox()”)时
在页面加载中,javascript函数不会启动
我在网上搜索了一个解决方案,但没有找到。我希望有人能帮我
请注意,如果没有runat=“server”
和pageu\u load中的代码行,则单击checkbox控件时会触发javascript函数。但是我需要在代码隐藏中获取checked属性的值
HTML:
通常,如果要在代码隐藏中检索复选框的值,则需要使用ASP.Net复选框服务器控件,除非您有不使用它的有效理由 ASP.Net服务器控件就是为了达到这种目的 选中/取消选中复选框时自动回发
//代码隐藏
受保护的void AutoPostbackCheckbox_CheckedChanged(对象发送方,事件参数e)
{
bool value=AutoPostbackCheckbox.Checked;
}
按按钮回发
//代码隐藏
受保护的无效提交按钮单击(对象发送者,事件参数e)
{
布尔值=复选框2。选中;
}
回到原来的问题
我在更新的代码中发现了一些问题。您可以使用服务器控件
看5谢谢你们所有人出来帮助我。但我找到了一个办法让它工作 我所做的就是
asp:hiddenfield ID=“hiddenfield”runat=“server”/>
'true'
或'false'
添加到隐藏字段中,方法是:document.getElementById(“”).value='true'代码>如果选中html输入复选框李>
这很好,因为我可以从代码隐藏中访问hiddenfield的值,并且当选中复选框时javascript可以工作。如果使用得当,谷歌是你最好的朋友。。请显示你的部分更多的努力,并做一个简单的谷歌搜索…来吧现在。。。!相信我,我告诉你,过去3个小时我一直在谷歌上搜索这个问题,但没有找到解决问题的方法。真的很尴尬。正如你在我的帖子中看到的,我在那里做了一个试验,但它只是让我的javascript函数无法工作。还尝试了Request.Form[“checkbox1”]
,但也没有成功。我没有看到任何相关代码。。所以@KaceyEzerioha抱歉,我不同意你在我的帖子中所说的,请阅读/回顾如何提问stackoverflow。你在使用母版页吗?当您设置runat=server时,输入名称和id会发生变化。当您在javascript中调用输入时,可能无法识别id。请参考此链接以代码形式读取输入值。您需要将runat=“server”属性。谢谢@Win,但我不能使用checkbox服务器控件,因为我正在使用javascript对客户端进行操作。这就是为什么我不能使用服务器控件的原因。谢谢你的帮助@Win,但是javascript在完全按照你推荐的方式操作之后就不能工作了。还有其他想法吗?你看到脚本错误了吗?你可以下载我的测试代码。您希望创建一个没有母版页的新aspx页并对其进行调试。
<tr>
<td align="right">Private Campaign:</td>
<td align="left">
<input id="chkIsPrivate" type="checkbox" onclick="toggleCheckbox()" />
</td>
</tr>
<tr id="password_tr" style="display: none">
<td align="right">Password:</td>
<td align="left">
<asp:TextBox ID="txtPassword" runat="server" TextMode="Password" Width="150px"></asp:TextBox><br />
</td>
</tr>
<tr id="confirmPassword_tr" style="display: none">
<td align="right">Confirm Password:</td>
<td align="left">
<asp:TextBox ID="txtConfirmPassword" runat="server" TextMode="Password" Width="150px"></asp:TextBox>
</td>
</tr>
function toggleCheckbox() {
var checkBox = document.getElementById("chkIsPrivate");
var pwd = document.getElementById("password_tr");
var confirmPwd = document.getElementById("confirmPassword_tr");
var hiddenVal = document.getElementById("privateHiddenInput");
if (checkBox.checked) {
pwd.style.display = "table-row";
confirmPwd.style.display = "table-row";
}
else {
pwd.style.display = "none";
confirmPwd.style.display = "none";
}
}
<asp:CheckBox ID="AutoPostbackCheckbox" runat="server" AutoPostBack="True"
OnCheckedChanged="AutoPostbackCheckbox_CheckedChanged" />
// Code Behind
protected void AutoPostbackCheckbox_CheckedChanged(object sender, EventArgs e)
{
bool value = AutoPostbackCheckbox.Checked;
}
<asp:CheckBox ID="Checkbox2" runat="server" />
<asp:Button ID="SubmitButton" OnClick="SubmitButton_Click"
runat="server" Text="Submit" />
// Code Behind
protected void SubmitButton_Click(object sender, EventArgs e)
{
bool value = Checkbox2.Checked;
}
<asp:CheckBox ID="IsPrivateCheckBox" runat="server"
onclick="toggleCheckbox(this)" /> <--- Pass this argument
<script type="text/javascript">
function toggleCheckbox(checkBox) { <--- add checkBox parameter
//var checkBox = document.getElementById("chkIsPrivate"); <-- Do not need it
var pwd = document.getElementById("password_tr");
var confirmPwd = document.getElementById("confirmPassword_tr");
if (checkBox.checked) {
pwd.style.display = "block"; <--- Make sure this is block
confirmPwd.style.display = "block"; <--- Make sure this is block
}
else {
pwd.style.display = "none";
confirmPwd.style.display = "none";
}
}
</script>