Как реализовать проверенное действие флажка ввода?

В 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}.";
    }
}

Но то, что я пробовал, не работает. Что я делаю не так? Или есть другой способ сделать это?

Всего 1 ответ


Вам не нужно скрытое поле. Если вы измените jQuery на приведенный ниже код, он запустит форму сообщения об изменении CheckBox.

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

Тогда вы можете просто получить значение в коде с помощью

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

Есть идеи?

10000