我在搜索时看到了几个旧/呃帖子,但无论出于什么原因,我都无法在我的项目中使用任何代码示例。
我想使用复选框控件来启用/禁用提交按钮,以便用户在注册之前必须同意使用术语。
使用SQL Server后端,asp.net和C#。我更愿意使用javascript来启用/禁用,但可以使用任何有效的功能。
此时我已经放弃了对实际代码的所有尝试,并希望有人可以协助提出可行的内容(因此下面没有javascript的原因)。
asp.net控件:
<div>
<asp:CheckBox ID="checkbox1" runat="server" Text="I Agree" Checked="false" />
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<asp:Button runat="server" ID="btnRegister" OnClick="CreateUser_Click" Text="Register" CssClass="btn btn-default" Enabled="false"/>
</div>
</div>
2016年8月5日更新 - 我已经尝试了多个人指示的项目中的代码作为重复,但它不起作用。在提交的问题中,复选框是一个HTML项目,而不是asp.net,并且根本没有引用该按钮。我试图更改该代码以适应,但当我选中/取消选中该复选框时,该按钮没有任何变化。
能够使用以下Javascript来执行所需的功能:
$(function () {
var $btn = $(":submit[id$=btnRegister]");
var $chk = $(":input:CheckBox[id$=checkbox1]");
// check on page load
checkChecked($chk);
$chk.click(function () {
checkChecked($chk);
});
function checkChecked(chkBox) {
if ($chk.is(':checked')) {
$btn.removeAttr('disabled');
}
else {
$btn.attr('disabled', 'disabled')
}
}
});
答案 0 :(得分:1)
使用以下Javascript:
<script type="text/javascript" > $(function () { var $btn = $(":submit[id$=btnRegister]");
var $chk = $(":input:CheckBox[id$=checkbox1]");
// check on page load checkChecked($chk); $chk.click(function () { checkChecked($chk); });
function checkChecked(chkBox) { if ($chk.is(':checked')) { $btn.removeAttr('disabled'); }
else { $btn.attr('disabled', 'disabled') } } });
</script>
答案 1 :(得分:0)
我建议的最简单方法是使用UpdatePanel
控件包装两个控件并设置UpdateMode=Conditional
并为Checkbox的CheckedChanged事件添加Trigger
。另外,为复选框设置AutoPostback=True
。
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="checkbox1" EventName="CheckedChanged " />
</Triggers>
<ContentTemplate>
<div>
<asp:CheckBox ID="checkbox1" runat="server" OnCheckedChanged="Check_Clicked" AutoPostback = "True" Text="I Agree" Checked="false" />
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<asp:Button runat="server" ID="btnRegister" OnClick="CreateUser_Click" Text="Register" CssClass="btn btn-default" Enabled="false"/>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
后端OnCheckedChanged
的处理程序方法将具有以下内容:
btnRegister.Enabled = checkbox1.Checked
我希望这会有所帮助,我希望我已经清楚了。
答案 2 :(得分:0)
<div>
<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True" OnCheckedChanged="CheckBox1_CheckedChanged" /><br />
<asp:Button ID="Button1" runat="server" Text="Button" />
</div>
protected void Page_Load(object sender, EventArgs e)
{
Button1.Enabled = false;
}
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
Button1.Enabled = CheckBox1.Checked;
}