首页 > 解决方案 > 如何实现输入复选框的选中动作?

问题描述

在 WebForm 中,我有一个input checkbox我想应用服务器端操作的对象。例如,当复选框被选中时,我想更改一些标签的文本。我曾尝试在客户端使用:

<input id="auto" name="auto" type="checkbox" data-toggle="toggle" data-on="AUTOMAT" data-off="MANUAL" <%= string.IsNullOrEmpty(Request["auto"]) ? string.Empty : "checked" %> />
<asp:Label ID="Label3" runat="server" Text="Label"></asp:Label>   
<asp:HiddenField ID="customSwitch1Change" runat="server" Value="0" />
        <script>
            $('#auto').click(function () {
                $('#<%=customSwitch1Change.ClientID%>').val("1");
                $('#form1').submit();
            });
        </script>

我已经将这个这个用于输入复选框。

在服务器端,我尝试过:

protected void CustomSwitch1Change(string auto)
{

    if (string.IsNullOrEmpty(auto))
    {
        Label3.Text = $"customSwitch1 was not checked.";
    }
    else
    {
        Label3.Text = $"customSwitch1 was checked and the check value is {auto}.";
    }
}

但是我尝试过的方法不起作用。我做错了什么?还是有其他方法可以做到这一点?

标签: c#htmlasp.netcheckboxhidden-field

解决方案


您不需要 HiddenField。如果您将 jQuery 更改为下面的代码,它将在 CheckBox 更改上发布表单。

<script>
    $('#auto').change(function () {
        $('#form1').submit();
    });
</script>

然后你可以简单地在后面的代码中获取值

string auto = Request.Form["auto"];

推荐阅读