Member239258 Ответов: 1

Как проверить выпадающие списки, чтобы выбрать хотя бы один


Уважаемые Эксперты,

У меня есть 4 выпадающих списка и кнопка отправки.

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

Пожалуйста помочь.

Спасибо

Что я уже пробовал:

 <script type="text/javascript">
    function Validate() {
        var Xddl1 = document.getElementById("<%=ddl1.ClientID %>");
         var Xddl2 = document.getElementById("<%=ddl2.ClientID %>");
          var Xddl3 = document.getElementById("<%=ddl3.ClientID %>");
           var Xddl4 = document.getElementById("<%=ddl4.ClientID %>");
       
        if(Xddl1r.getElementsByTagName == "" || Xddl2.getElementsByTagName =="" || Xddl3.getElementsByTagName == "" || Xddl4.getElementsByTagName == "")
        
        {
         
            alert("Please select atleast one!");
            return false;
        }
        return true;
    }
</script>

1 Ответов

Рейтинг:
0

Bryian Tan

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

//ddl1
//ddl2
<asp:DropDownList ID="ddl3" runat="server">
        <asp:ListItem Text="Select" Value=""></asp:ListItem>
        <asp:ListItem Text="Option 1" Value="1"></asp:ListItem>
        <asp:ListItem Text="Option 2" Value="2"></asp:ListItem>
        <asp:ListItem Text="Option 3" Value="3"></asp:ListItem>
        <asp:ListItem Text="Option 4" Value="4"></asp:ListItem>
    </asp:DropDownList>
...

Тогда проверка на стороне клиента будет выглядеть примерно так, как показано ниже
<script type="text/javascript">
        function Validate() {
            var Xddl1 = document.getElementById("<%=ddl1.ClientID %>");
            var Xddl2 = document.getElementById("<%=ddl2.ClientID %>");
            var Xddl3 = document.getElementById("<%=ddl3.ClientID %>");
            var Xddl4 = document.getElementById("<%=ddl4.ClientID %>");

            //answer[answer.selectedIndex].value
            if (Xddl1[Xddl1.selectedIndex].value == "" &&
                Xddl2[Xddl2.selectedIndex].value == "" &&
                Xddl3[Xddl3.selectedIndex].value == "" &&
                Xddl4[Xddl4.selectedIndex].value == "") {

                alert("Please select atleast one!");
                return false;
            }
            return true;
        }
    </script>


На второй, хотя, давайте держать его просто. Приведенный выше код должен работать. Приведенный ниже код относится к каждому элементу управления, возможно, вам придется заглянуть в него. Управление CustomValidator[^] чтобы убедиться, что выбрано хотя бы одно значение из выпадающего списка.
Я предпочитаю использовать элемент управления валидацией, который будет обрабатывать валидацию на стороне клиента и сервера. Вот вам пример.
//ddl1
...
<asp:DropDownList ID="ddl4" runat="server">
        <asp:ListItem Text="Select" Value="0"></asp:ListItem>
        <asp:ListItem Text="Option 1" Value="1"></asp:ListItem>
        <asp:ListItem Text="Option 2" Value="2"></asp:ListItem>
        <asp:ListItem Text="Option 3" Value="3"></asp:ListItem>
        <asp:ListItem Text="Option 4" Value="4"></asp:ListItem>
    </asp:DropDownList>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" 

         Display="Dynamic" ControlToValidate="ddl4" InitialValue="0"

        ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
    <asp:Button ID="Button1" runat="server" Text="Button" />

Приведенная выше разметка должна обрабатывать проверку на стороне клиента. Затем на стороне сервера код должен вызвать страницу.Метод IsValid, чтобы убедиться, что все, что отправлено на сервер, является действительным.
if (Page.IsValid)
{
    // your code here.
}


Karthik_Mahalingam

5