C# 在ASP.Net中搜索筛选选定数量验证

C# 在ASP.Net中搜索筛选选定数量验证,c#,javascript,asp.net,.net,validation,C#,Javascript,Asp.net,.net,Validation,在ASP.net(C#)数据搜索页面中,我有一组下拉列表和两个文本框作为筛选字段。我想找到一种方法来验证所选的过滤器,以便用户必须提供至少2个搜索过滤器。这意味着用户必须选择至少1个下拉列表,并为一个文本框提供文本,或选择2个下拉列表 实现这一目标的最佳方式是什么 谢谢如果您正在使用jQuery,您可以使用它来完成所指的工作,而无需发布到服务器 下面是我模拟的完整测试页面,它将检查这些值。只要带有SearchSelect类的两个或多个select元素的值不是null或“函数将返回true。如果没

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

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


谢谢

如果您正在使用jQuery,您可以使用它来完成所指的工作,而无需发布到服务器

下面是我模拟的完整测试页面,它将检查这些值。只要带有
SearchSelect
类的两个或多个
select
元素的值不是
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>

函数CheckFilters(){
var计数=0;
$('.SearchSelect').addClass('badSelect');
$('.SearchSelect')。每个(函数(){
var sl=$(本);
如果(sl.val()!=null&&sl.val()!=“”){
计数++;
sl.removeClass('badSelect');
}
});
如果(计数>=2){
$('.SearchSelect').removeClass('badSelect');
返回true;
}否则{
返回false;
}
}
$(文档).ready(函数(){
$(“#提交按钮”)。单击(函数(e){
如果(!CheckFilters())e.preventDefault();
else alert(“Success”);//在您的情况下,此行可能会被排除,您可能不会执行任何允许POST/GET请求处理的操作
});
});
.badSelect{
边框:1px纯红;
}
选择一个过滤器
有价值

选择一个过滤器 有价值
选择一个过滤器 有价值
提交
为什么不使用RequiredfieldValidator?在搜索筛选器中,不能强制用户选择值。我需要检查所选下拉列表或键入的文本框的数量,看看它们是否满足最小值(2个值)。为所有搜索下拉列表指定一个特定的css类(组成一个)循环,并对具有值的下拉列表进行计数?你在使用jQuery吗?使用javascript检查下拉列表和文本框是否有值,如果与最低要求不匹配,则返回false。伙计,我知道我必须检查它们的值,但问题是如何检查?逐个检查没有意义。必须有一种方法来验证是否选择了某个值。顺便说一下,我所有的下拉列表都选择了第一个索引“-SELECT-”(仅供参考)