使用复选框

时间:2016-08-04 20:35:09

标签: c# asp.net

我在搜索时看到了几个旧/呃帖子,但无论出于什么原因,我都无法在我的项目中使用任何代码示例。

我想使用复选框控件来启用/禁用提交按钮,以便用户在注册之前必须同意使用术语。

使用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')
        }
    }
});

3 个答案:

答案 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;
    }