0

我有一组下拉列表和 2 个文本框作为 ASP.net (C#) 数据搜索页面中的过滤器字段。我想找到一种方法来验证所选过滤器,以便用户必须提供至少 2 个搜索过滤器。这意味着用户必须选择至少 1 个下拉菜单并为一个文本框提供文本或选择 2 个下拉菜单。

实现这一目标的最佳方法是什么?

谢谢

4

1 回答 1

1

如果您使用的是 jQuery,您可以使用它来执行您所指的操作,而无需发布到服务器。

这是我模拟的一个完整的测试页面,它将检查值。只要该类中的两个或多个select元素具有SearchSelect除 then 以外的值,null否则""该函数将返回 true。如果不是,它会将未选中的框着色为红色。您还可以显示一条错误消息,让他们知道他们需要选择另一个过滤器......或在那个程度上的东西。

<html>
    <head>
        <title></title>
        <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.3.min.js"></script>
        <script>
            function CheckFilters() {
                var count = 0;
                $('.SearchSelect').addClass('badSelect');
                $('.SearchSelect').each(function() {
                    var sl = $(this);
                    if (sl.val() != null && sl.val() !== "") {
                        count++;
                        sl.removeClass('badSelect');
                    }
                });
                if (count >= 2) {
                    $('.SearchSelect').removeClass('badSelect');
                    return true;
                } else {
                    return false;
                }
            }
            $(document).ready(function(){
                $('#SubmitButton').click(function(e) {
                    if(!CheckFilters()) e.preventDefault();
                    else alert("Success"); // in your case this line will probably be excluded and you will probably do nothing which will allow the POST/GET request to process
                });
            });
        </script>
        <style>
            .badSelect{
                border: 1px solid red;
            }
        </style>
    </head>
    <body>
        <form>
        <select class="SearchSelect" id="One">
            <option value="">Select A Filter</option>
            <option value="hasValue">Has a Value</option>
        </select><br /> 
        <select class="SearchSelect" id="Two">
            <option value="">Select A Filter</option>
            <option value="hasValue">Has a Value</option>
        </select> <br /> 
        <select class="SearchSelect" id="Three">
            <option value="">Select A Filter</option>
            <option value="hasValue">Has a Value</option>
        </select> <br />
        <button type="button" id="SubmitButton">Submit</button></form>
    </body>
</html>
于 2012-12-15T10:28:51.740 回答