我有一组下拉列表和 2 个文本框作为 ASP.net (C#) 数据搜索页面中的过滤器字段。我想找到一种方法来验证所选过滤器,以便用户必须提供至少 2 个搜索过滤器。这意味着用户必须选择至少 1 个下拉菜单并为一个文本框提供文本或选择 2 个下拉菜单。
实现这一目标的最佳方法是什么?
谢谢
我有一组下拉列表和 2 个文本框作为 ASP.net (C#) 数据搜索页面中的过滤器字段。我想找到一种方法来验证所选过滤器,以便用户必须提供至少 2 个搜索过滤器。这意味着用户必须选择至少 1 个下拉菜单并为一个文本框提供文本或选择 2 个下拉菜单。
实现这一目标的最佳方法是什么?
谢谢
如果您使用的是 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>