比如有10条规定 如果1-5条规定中有2条没打钩 那么就判定这次的评选不合格
比如如果6-9条规定中有2条没打钩 并且1、5、6有1条没打钩 那么就判定这次的评选不合格
就是这样的 参数是可以设置的 就是第几条到第几条如果没打钩 或者某几条中的条没打钩 就不合格我想知道这样怎么实现呢 数据库表怎么设计 还有JSP JS怎么写呢 求大神高人给个例子 指点下小弟 小弟参考下吧 很紧急 觉得好难 是CHECKBOX的
比如如果6-9条规定中有2条没打钩 并且1、5、6有1条没打钩 那么就判定这次的评选不合格
就是这样的 参数是可以设置的 就是第几条到第几条如果没打钩 或者某几条中的条没打钩 就不合格我想知道这样怎么实现呢 数据库表怎么设计 还有JSP JS怎么写呢 求大神高人给个例子 指点下小弟 小弟参考下吧 很紧急 觉得好难 是CHECKBOX的
id name
1 规则1定义一个规则明细表,如:
id pid type value
1 1 to 1,5
2 1 to 6,9
3 1 and 1,5,6
其中pid为上面规则表的id
在规定表里面添加规则表id,表示这规定按什么规则来判定。
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<form id="myform">
<input type="checkbox" class="rule" id="rule1" name="rule1" value="rule1"/>
<label for="rule1">Rule1</label>
<br/>
<input type="checkbox" class="rule" id="rule2" name="rule2" value="rule2"/>
<label for="rule2">Rule2</label>
<br/>
<input type="checkbox" class="rule" id="rule3" name="rule3" value="rule3"/>
<label for="rule3">Rule3</label>
<br/>
<input type="checkbox" class="rule" id="rule4" name="rule4" value="rule4"/>
<label for="rule4">Rule4</label>
<br/>
<input type="checkbox" class="rule" id="rule5" name="rule5" value="rule5"/>
<label for="rule5">Rule5</label>
<br/>
<input type="checkbox" class="rule" id="rule6" name="rule6" value="rule6"/>
<label for="rule6">Rule6</label>
<br/>
<input type="checkbox" class="rule" id="rule7" name="rule7" value="rule7"/>
<label for="rule7">Rule7</label>
<br/>
<input type="checkbox" class="rule" id="rule8" name="rule8" value="rule8"/>
<label for="rule8">Rule8</label>
<br/>
<input type="checkbox" class="rule" id="rule9" name="rule9" value="rule9"/>
<label for="rule9">Rule9</label>
<br/>
<input type="checkbox" class="rule" id="rule10" name="rule10" value="rule10"/>
<label for="rule10">Rule10</label>
<br/>
<input id="verify" type="button" value="verify"/>
</form>
<script type="text/javascript">
function Check(container){
var options = [],
checkboxs = [];
var defaultOption = {
begin: 0,
end: 5,
entry: 0
}
this.init = function(){
var inputs = container.getElementsByTagName("input"),
input = null;
for(var i = 0; i < inputs.length; i++){
input = inputs[i];
if("checkbox" === input.type){
checkboxs.push(input);
}
}
}
this.verify = function(){
for(var i = 0, len = options.length; i < len; i++){
if(!this.check(options[i])){
this.alert("不合格");
return false;
}
}
this.alert("合格");
}
this.check = function(option){
var count = 0;
option.length && option.push(defaultOption);
if(option.begin > checkboxs.length){
this.alert("error");
}else if(option.end > checkboxs.length){
option.end = checkboxs.length;
}
for(var i = option.begin - 1; i < option.end; i++){
if(!checkboxs[i].checked){
count++;
}
}
return option.entry >= count ? true : false;
}
this.setRule = function(begin, end, entry){
var o = {};
o.begin = begin;
o.end = end;
o.entry = entry;
options.push(o);
}
this.alert = function(str){
alert(str);
}
this.init();
}
document.getElementById("verify").onclick = function(){
var callee = arguments.callee;
if(!callee.check){
callee.check = new Check(document.getElementById("myform"));
callee.check.setRule(1, 5, 0);
callee.check.setRule(6, 10, 2);
}
callee.check.verify();
};
</script>
</html>
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<form id="myform">
<input type="checkbox" class="rule" id="rule1" name="rule1" value="rule1"/>
<label for="rule1">Rule1</label>
<br/>
<input type="checkbox" class="rule" id="rule2" name="rule2" value="rule2"/>
<label for="rule2">Rule2</label>
<br/>
<input type="checkbox" class="rule" id="rule3" name="rule3" value="rule3"/>
<label for="rule3">Rule3</label>
<br/>
<input type="checkbox" class="rule" id="rule4" name="rule4" value="rule4"/>
<label for="rule4">Rule4</label>
<br/>
<input type="checkbox" class="rule" id="rule5" name="rule5" value="rule5"/>
<label for="rule5">Rule5</label>
<br/>
<input type="checkbox" class="rule" id="rule6" name="rule6" value="rule6"/>
<label for="rule6">Rule6</label>
<br/>
<input type="checkbox" class="rule" id="rule7" name="rule7" value="rule7"/>
<label for="rule7">Rule7</label>
<br/>
<input type="checkbox" class="rule" id="rule8" name="rule8" value="rule8"/>
<label for="rule8">Rule8</label>
<br/>
<input type="checkbox" class="rule" id="rule9" name="rule9" value="rule9"/>
<label for="rule9">Rule9</label>
<br/>
<input type="checkbox" class="rule" id="rule10" name="rule10" value="rule10"/>
<label for="rule10">Rule10</label>
<br/>
<input id="verify" type="button" value="verify"/>
</form>
<script type="text/javascript">
function Check(container){
var options = [],
checkboxs = [];
var defaultOption = {
begin: 0,
end: 5,
entry: 0,
list: [],
include: false,
condition: null
}
this.init = function(){
var inputs = container.getElementsByTagName("input"),
input = null;
for(var i = 0; i < inputs.length; i++){
input = inputs[i];
if("checkbox" === input.type){
checkboxs.push(input);
}
}
}
this.verify = function(){
for(var i = 0, len = options.length; i < len; i++){
if(!this.check(options[i])){
this.alert("不合格");
return false;
}
}
this.alert("合格");
}
this.check = function(option){
var includeCounter = 0, excludeCounter = 0;
option.length && option.push(defaultOption);
if(option.begin > checkboxs.length){
this.alert("error");
}else if(option.end > checkboxs.length){
option.end = checkboxs.length;
}
if(option.list && option.list.length > 0){
for(var i = 0, len = option.list.length; i < len; i++){
if(!checkboxs[option.list[i] - 1].checked){
return false;
}
}
}
for(var i = option.begin - 1; i < option.end; i++){
if(option.include && checkboxs[i].checked){
includeCounter++;
}else if(!option.include && !checkboxs[i].checked){
excludeCounter++;
}
}
if(option.include && includeCounter >= option.entry){
return true;
}else if(!option.include && excludeCounter <= option.entry){
return true;
}else if(option.condition){
return this.check(option.condition);
}else{
return false;
}
}
this.setRule = function(option1, option2){
option2 && (option1.condition = option2);
options.push(option1);
}
this.extend = function(obj1, obj2){
}
this.alert = function(str){
alert(str);
}
this.init();
}
document.getElementById("verify").onclick = function(){
var callee = arguments.callee;
if(!callee.check){
callee.check = new Check(document.getElementById("myform"));
callee.check.setRule({begin: 1, end: 5, entry: 1});
callee.check.setRule({begin: 6, end: 9, entry: 1}, {list: [1,5,6], entry: 0, include:true});
}
callee.check.verify();
};
</script>
</html>