Как проверить список флажков на странице содержимого?

Я беру список флажков на странице содержимого главной страницы, с помощью которого я могу выбрать несколько значений и сохранить их в базе данных. Как подтвердить, что хотя бы один из флажков установлен во время нажатия кнопки отправки.


person SoumitaP    schedule 11.04.2013    source источник
comment
stackoverflow.com/questions/6129445 /   -  person Deepanshu Goyal    schedule 11.04.2013
comment
вы хотите валидацию в java-скрипте?   -  person शेखर    schedule 11.04.2013


Ответы (2)


Вы можете сделать как показано ниже.

В JavaScript не имеет значения, где находятся элементы управления: либо страница содержимого, либо главная страница

<asp:CheckBoxList ID="chkModuleList"runat="server" />

<asp:CustomValidator runat="server" ID="cvmodulelist"
  ClientValidationFunction="ValidateModuleList"
  ErrorMessage="Please Select Atleast one Module" />

// javascript to add to your aspx page
function ValidateModuleList(source, args)
{
  var chkListModules= document.getElementById ('<%= chkModuleList.ClientID %>');
  var chkListinputs = chkListModules.getElementsByTagName("input");
  for (var i=0;i<chkListinputs .length;i++)
  {
    if (chkListinputs [i].checked)
    {
      args.IsValid = true;
      return;
    }
  }
  args.IsValid = false;
}

Обновление: Или вы можете воспользоваться этим подходом: поставить любой css-class say company. Вы можете пройти ниже.

Имеется :checked (http://api.jquery.com/checked-selector/ ) вы можете использовать:

<script>
    $(document).ready(function() {
        $(".company input").click(function() {
            var cnt = $(".company input:checked").length;
            if (cnt == 0)
            {
               // none checked
            }
            else
            {
               // any checked
            }
        });
    });
</script>

Вы можете добавить (или использовать) идентификатор в контейнере этих флажков, чтобы оптимизировать скорость выбора.

Что касается asp.net, испорченного идентификаторами клиентов в элементах управления, вы можете использовать

$('<%= MyControl.ClientID %>')

Использованная литература:

person शेखर    schedule 11.04.2013

Dado.Validators, библиотека на GitHub, тоже отлично справляется с этим.

<asp:CheckBoxList ID="cblCheckBoxList" runat="server">
    <asp:ListItem Text="Check Box (empty)" Value="" />
    <asp:ListItem Text="Check Box 1" Value="1" />
    <asp:ListItem Text="Check Box 2" Value="2" />
    <asp:ListItem Text="Check Box 3" Value="3" />
</asp:CheckBoxList>

<Dado:RequiredFieldValidator runat="server" ControlToValidate="cblCheckBoxList" ValidationGroup="vlgSubmit" />

Пример codebehind.aspx.cs

btnSubmit.Click += (a, b) =>
{
    Page.Validate("vlgSubmit");
    if (Page.IsValid) {
        // Validation Successful
    }
};

https://www.nuget.org/packages/Dado.Validators/

person roydukkey    schedule 16.08.2013