小编最近又遇到了一个需求,该需求需要小编使用复选框进行查询,于是小编又查询了很多资料终于完成了,这大概是小编第二次整理复选框的资料了,上一次是为了修改而整理的,这次为了查询而整理的
<!DOCTYPE html>
<html lang="cn">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8"/>
<title>复选框全选、全不选、反选、必选一个</title>
<script type="text/javascript">
//全选
function selectAll() {
var names = document.getElementsByName("fruit");
for(var i=0;i<names.length;i++){
names[i].checked=true;
}
}
//全不选
function selectNone() {
var names = document.getElementsByName("fruit");
for(var i=0;i<names.length;i++){
names[i].checked=false;
}
}
//反选
function selectInvert() {
var names = document.getElementsByName("fruit");
for(var i=0;i<names.length;i++){
if(names[i].checked){
names[i].checked=false ;
}else{
names[i].checked=true ;
}
}
}
//必须选择一个
function selectOne() {
var names = document.getElementsByName("fruit");
var flag = false ;//标记判断是否选中一个
for(var i=0;i<names.length;i++){
if(names[i].checked){
flag = true ;
break ;
}
}
if(!flag){
alert("请最少选择一项!");
return false ;
}
}
//获取选中的值
function Query(){
var obj = $('[name="fruit"]');
check_val = [];
for(k in obj){
if(obj[k].checked && obj[k].value != "")//获取复选框已选中的值或复选框传来的实际值
check_val.push(obj[k].value);
}
alert(check_val.toString());//一般需要将数组转化成1,2,3的形式
$.ajax({
url: "Query.aspx?Query&fruit=" + check_val.toString()),
success: function (text) {
if (text == "OK") { alert("操作成功!") }
else { alert("操作失败!") }
}
});
}
</script>
</head>
<body>
<form id="checkboxform" method="post" action="">
<input type="checkbox" name="fruit" value="1"/>苹果
<input type="checkbox" name="fruit" value="2"/>香蕉
<input type="checkbox" name="fruit" value="3"/>梨子
<input type="checkbox" name="fruit" value="4"/>樱桃
<input type="checkbox" name="fruit" value="5"/>荔枝
<a href="javascript:void(0);" onclick="selectAll()">全选</a>
<a href="javascript:void(0);" onclick="selectNone()">全不选</a>
<a href="javascript:void(0);" onclick="selectInvert()">反选</a>
<a href="javascript:void(0);" onclick="selectOne()">必须选择一个</a>
</form>
<a href="#" onclick="Query()">查询</a>
</body>
</html>
//C# 代码转化
if (!string.IsNullOrEmpty(entity.fruit))
{
string key = entity.fruit.ToString();
string[] arr = key.Split(',');
strSql += " and (";
for (int i = 0; i < arr.Length; i++)
{
strSql += " c.fruit=" + Convert.ToInt32(arr[i].Trim()) + "";
if (i < arr.Length-1)
{
strSql += " or ";
}
}
strSql += " )";
}