Как реализовать проверенное действие флажка ввода? - PullRequest
2 голосов
/ 16 января 2020

В 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>

Я использовал this и this для флажка ввода.

На сервере со стороны я попробовал:

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 Ответ

1 голос
/ 16 января 2020

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

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

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

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