如下的用户分成三组,现需要在这些用户中做选择,并将结果存入frmnamelist容器中,具体要求:
1、可以分组选择,并将选择的结果送到frmnamelist,这些结果即时排序;
2、可以修改选择,并将结果从frmnamelist中剔除;
3、可以按用户选择或取消,保持frmnamelist中的结果正确;
4、不影响选择方式与选择的先后顺序……
javascript怎么实现这个功能,请求支招,无比感谢!
<div>
<input type="checkbox" name="checkall1" id="checkall1" onclick="CheckAll('frmname1','checkall1')" />全选用户组1</div>
<div class="Q_left_content">
<input type="checkbox" name="frmname1" onclick="CheckThis('frmname1');" value="用户1" />用户1
<input type="checkbox" name="frmname1" onclick="CheckThis('frmname1');" value="用户2" />用户2
<input type="checkbox" name="frmname1" onclick="CheckThis('frmname1');" value="用户3" />用户3
<input type="checkbox" name="frmname1" onclick="CheckThis('frmname1');" value="用户4" />用户4
<input type="checkbox" name="frmname1" onclick="CheckThis('frmname1');" value="用户5" />用户5
<input type="checkbox" name="frmname1" onclick="CheckThis('frmname1');" value="用户6" />用户6
<input type="checkbox" name="frmname1" onclick="CheckThis('frmname1');" value="用户7" />用户7
<input type="checkbox" name="frmname1" onclick="CheckThis('frmname1');" value="用户8" />用户8
<input type="checkbox" name="frmname1" onclick="CheckThis('frmname1');" value="用户9" />用户9
</div>
<input type="checkbox" name="checkall2" id="checkall2" onclick="CheckAll('frmname2','checkall2')" />全选用户组2</div>
<div class="Q_left_content">
<input type="checkbox" name="frmname2" onclick="CheckThis('frmname2');" value="用户10" />用户10
<input type="checkbox" name="frmname2" onclick="CheckThis('frmname2');" value="用户11" />用户11
<input type="checkbox" name="frmname2" onclick="CheckThis('frmname2');" value="用户12" />用户12
<input type="checkbox" name="frmname2" onclick="CheckThis('frmname2');" value="用户13" />用户13
<input type="checkbox" name="frmname2" onclick="CheckThis('frmname2');" value="用户14" />用户14
<input type="checkbox" name="frmname2" onclick="CheckThis('frmname2');" value="用户15" />用户15
<input type="checkbox" name="frmname2" onclick="CheckThis('frmname2');" value="用户16" />用户16
<input type="checkbox" name="frmname2" onclick="CheckThis('frmname2');" value="用户17" />用户17
<input type="checkbox" name="frmname2" onclick="CheckThis('frmname2');" value="用户18" />用户18
</div>
<input type="checkbox" name="checkall3" id="checkall3" onclick="CheckAll('frmname3','checkall3')" />全选用户组3</div>
<div class="Q_left_content">
<input type="checkbox" name="frmname3" onclick="CheckThis('frmname3');" value="用户19" />用户19
<input type="checkbox" name="frmname3" onclick="CheckThis('frmname3');" value="用户20" />用户20
<input type="checkbox" name="frmname3" onclick="CheckThis('frmname3');" value="用户21" />用户21
<input type="checkbox" name="frmname3" onclick="CheckThis('frmname3');" value="用户22" />用户22
<input type="checkbox" name="frmname3" onclick="CheckThis('frmname3');" value="用户23" />用户23
<input type="checkbox" name="frmname3" onclick="CheckThis('frmname3');" value="用户24" />用户24
<input type="checkbox" name="frmname3" onclick="CheckThis('frmname3');" value="用户25" />用户25
<input type="checkbox" name="frmname3" onclick="CheckThis('frmname3');" value="用户26" />用户26
<input type="checkbox" name="frmname3" onclick="CheckThis('frmname3');" value="用户27" />用户27
<input type="checkbox" name="frmname3" onclick="CheckThis('frmname3');" value="用户28" />用户28
<input type="checkbox" name="frmname3" onclick="CheckThis('frmname3');" value="用户29" />用户29
<input type="checkbox" name="frmname3" onclick="CheckThis('frmname3');" value="用户30" />用户30
</div>
</div>
<div>已经被选中的好友</div>
<div id="frmnamelist"></div>
选中的放进数组,排序后放到<div id="frmnamelist"> 里面
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
</head><body>
<script language="javascript">
<!--
function cha(){
var objDiv=document.getElementById("frmname").getElementsByTagName("div")
var checkArray=[]
for (var i=0;i<objDiv.length;i++){
var objInp=objDiv[i].getElementsByTagName("input")
for (var j=0;j<objInp.length;j++){
if (objInp[j].type=="checkbox" && objInp[j].name.indexOf("frmname")!=-1 && objInp[j].checked){
checkArray[checkArray.length]=objInp[j].value
}
}
}
var str=""
for (var i=0;i<checkArray.length;i++){
str+=checkArray[i]+" "
}
document.getElementById("frmnamelist").innerHTML=str
}
onload=function(){
var obj=document.getElementById("frmname").getElementsByTagName("input");
for (var i=0;i<obj.length;i++){
if (obj[i].type=="checkbox"){
if(obj[i].name.indexOf("checkall")!=-1)
obj[i].onclick=function(){
CheckAll("frmname"+this.name.split("checkall")[1],this)
}
if (obj[i].name.indexOf("frmname")!=-1)
obj[i].onclick=function(){
CheckThis(this)
}
}
}
}function CheckAll(_frmname,_this){
var obj=document.getElementById("frmname").getElementsByTagName("input");
for (var i=0;i<obj.length;i++)
if (obj[i].type=="checkbox" && obj[i].name==_frmname)
obj[i].checked=_this.checked
cha()
}function CheckThis(_this){
cha()
}//-->
</script>
<div id=frmname>
<div>
<input type="checkbox" name="checkall1" id="checkall1" onclick="CheckAll('frmname1',this)" />全选用户组1 </div>
<div class="Q_left_content">
<input type="checkbox" name="frmname1" value="用户1" />用户1
<input type="checkbox" name="frmname1" value="用户2" />用户2
<input type="checkbox" name="frmname1" value="用户3" />用户3
<input type="checkbox" name="frmname1" value="用户4" />用户4
<input type="checkbox" name="frmname1" value="用户5" />用户5
<input type="checkbox" name="frmname1" value="用户6" />用户6
<input type="checkbox" name="frmname1" value="用户7" />用户7
<input type="checkbox" name="frmname1" value="用户8" />用户8
<input type="checkbox" name="frmname1" value="用户9" />用户9 </div><br>
<div>
<input type="checkbox" name="checkall2" id="checkall2" onclick="CheckAll('frmname2',this)" />全选用户组2 </div>
<div class="Q_left_content">
<input type="checkbox" name="frmname2" value="用户10" />用户10
<input type="checkbox" name="frmname2" value="用户11" />用户11
<input type="checkbox" name="frmname2" value="用户12" />用户12
<input type="checkbox" name="frmname2" value="用户13" />用户13
<input type="checkbox" name="frmname2" value="用户14" />用户14
<input type="checkbox" name="frmname2" value="用户15" />用户15
<input type="checkbox" name="frmname2" value="用户16" />用户16
<input type="checkbox" name="frmname2" value="用户17" />用户17
<input type="checkbox" name="frmname2" value="用户18" />用户18 </div><br>
<div>
<input type="checkbox" name="checkall3" id="checkall3" onclick="CheckAll('frmname3',this)" />全选用户组3 </div>
<div class="Q_left_content">
<input type="checkbox" name="frmname3" value="用户19" />用户19
<input type="checkbox" name="frmname3" value="用户20" />用户20
<input type="checkbox" name="frmname3" value="用户21" />用户21
<input type="checkbox" name="frmname3" value="用户22" />用户22
<input type="checkbox" name="frmname3" value="用户23" />用户23
<input type="checkbox" name="frmname3" value="用户24" />用户24
<input type="checkbox" name="frmname3" value="用户25" />用户25
<input type="checkbox" name="frmname3" value="用户26" />用户26
<input type="checkbox" name="frmname3" value="用户27" />用户27
<input type="checkbox" name="frmname3" value="用户28" />用户28
<input type="checkbox" name="frmname3" value="用户29" />用户29
<input type="checkbox" name="frmname3" value="用户30" />用户30
</div><br>
</div> <div>已经被选中的好友 </div>
<div id="frmnamelist" style="border:1px red solid"> </div>
</body></html>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
</head><body>
<script language="javascript">
<!-- String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
}
Array.prototype.popByVal = function(val) {
for(var i = 0 ; i < this.length ; i++) {
if(this[i] == val){
if(this.length - 1 == i) this.pop();
else{
var temp = this[i];
this[i] = this[this.length -1];
this[this.length -1] = temp ;
this.pop();
}
}else continue;
}
}
Array.prototype.isExist = function(val) {
var flag = false;
for(var i = 0 ; i < this.length ; i++) {
if(this[i] == val){
flag = true;
break;
}
}
return flag;
}
var selBox = [];
var CheckAll = function(groupName,obj) {
var gboxs = document.getElementsByName(groupName);
for(var i = 0 ; i< gboxs.length ; i++){
gboxs[i].checked =(obj.checked)? "checked":"";
if(gboxs[i].checked && !selBox.isExist(gboxs[i].value.trim())) {
selBox.push(gboxs[i].value.trim());
}else if(!gboxs[i].checked ){
selBox.popByVal(gboxs[i].value.trim());
}
showSelected(selBox);
}
}
var $ = function(id) {return document.getElementById(id);}
window.onload = function() {
var boxes = document.getElementsByTagName("INPUT");
for(var i = 0 ; i < boxes.length ; i++) {
if(boxes[i].type == "checkbox" && boxes[i].value != "on") {
boxes[i].onclick = function() {
if(this.checked && !selBox.isExist(this.value.trim())) {
selBox.push(this.value.trim());
}else if(!this.checked){
selBox.popByVal(this.value.trim());
}
showSelected(selBox);
};
}
}
}
var showSelected = function(arr) {
var o = $("frmnamelist");
arr.sort();
o.innerText = arr.join(",");
}
//-->
</script>
<div id=frmname >
<div>
<input type="checkbox" name="checkall1" id="checkall1" onclick="CheckAll('frmname1',this)" />全选用户组1 </div>
<div class="Q_left_content">
<input type="checkbox" name="frmname1" value="用户1" />用户1
<input type="checkbox" name="frmname1" value="用户2" />用户2
<input type="checkbox" name="frmname1" value="用户3" />用户3
<input type="checkbox" name="frmname1" value="用户4" />用户4
<input type="checkbox" name="frmname1" value="用户5" />用户5
<input type="checkbox" name="frmname1" value="用户6" />用户6
<input type="checkbox" name="frmname1" value="用户7" />用户7
<input type="checkbox" name="frmname1" value="用户8" />用户8
<input type="checkbox" name="frmname1" value="用户9" />用户9 </div><br>
<div>
<input type="checkbox" name="checkall2" id="checkall2" onclick="CheckAll('frmname2',this)" />全选用户组2 </div>
<div class="Q_left_content">
<input type="checkbox" name="frmname2" value="用户10" />用户10
<input type="checkbox" name="frmname2" value="用户11" />用户11
<input type="checkbox" name="frmname2" value="用户12" />用户12
<input type="checkbox" name="frmname2" value="用户13" />用户13
<input type="checkbox" name="frmname2" value="用户14" />用户14
<input type="checkbox" name="frmname2" value="用户15" />用户15
<input type="checkbox" name="frmname2" value="用户16" />用户16
<input type="checkbox" name="frmname2" value="用户17" />用户17
<input type="checkbox" name="frmname2" value="用户18" />用户18 </div><br>
<div>
<input type="checkbox" name="checkall3" id="checkall3" onclick="CheckAll('frmname3',this)" />全选用户组3 </div>
<div class="Q_left_content">
<input type="checkbox" name="frmname3" value="用户19" />用户19
<input type="checkbox" name="frmname3" value="用户20" />用户20
<input type="checkbox" name="frmname3" value="用户21" />用户21
<input type="checkbox" name="frmname3" value="用户22" />用户22
<input type="checkbox" name="frmname3" value="用户23" />用户23
<input type="checkbox" name="frmname3" value="用户24" />用户24
<input type="checkbox" name="frmname3" value="用户25" />用户25
<input type="checkbox" name="frmname3" value="用户26" />用户26
<input type="checkbox" name="frmname3" value="用户27" />用户27
<input type="checkbox" name="frmname3" value="用户28" />用户28
<input type="checkbox" name="frmname3" value="用户29" />用户29
<input type="checkbox" name="frmname3" value="用户30" />用户30
</div><br>
</div> <div>已经被选中的好友 </div>
<div id="frmnamelist" style="border:1px red solid"> </div>
</body></html>
ps:基本效果都有,但排序方面,我用了数组提供的sort(),在单个修改使可以,但是批量就乱了。
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
</head><body>
<script language="javascript">
<!-- String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
}
Array.prototype.popByVal = function(val) {
for(var i = 0 ; i < this.length ; i++) {
if(this[i] == val){
if(this.length - 1 == i) this.pop();
else{
var temp = this[i];
this[i] = this[this.length -1];
this[this.length -1] = temp ;
this.pop();
}
}else continue;
}
}
Array.prototype.isExist = function(val) {
var flag = false;
for(var i = 0 ; i < this.length ; i++) {
if(this[i] == val){
flag = true;
break;
}
}
return flag;
}
var selBox = [];
var CheckAll = function(groupName,obj) {
var gboxs = document.getElementsByName(groupName);
for(var i = 0 ; i< gboxs.length ; i++){
gboxs[i].checked =(obj.checked)? "checked":"";
if(gboxs[i].checked && !selBox.isExist(gboxs[i].value.trim())) {
selBox.push(gboxs[i].value.trim());
}else if(!gboxs[i].checked ){
selBox.popByVal(gboxs[i].value.trim());
}
showSelected(selBox);
}
}
var $ = function(id) {return document.getElementById(id);}
window.onload = function() {
var boxes = document.getElementsByTagName("INPUT");
for(var i = 0 ; i < boxes.length ; i++) {
if(boxes[i].type == "checkbox" && boxes[i].value != "on") {
boxes[i].onclick = function() {
if(this.checked && !selBox.isExist(this.value.trim())) {
selBox.push(this.value.trim());
}else if(!this.checked){
selBox.popByVal(this.value.trim());
}
showSelected(selBox);
};
}
}
}
var showSelected = function(arr) {
var o = $("frmnamelist");
arr.sort();
o.innerText = arr.join(",");
}
//-->
</script>
<div id=frmname >
<div>
<input type="checkbox" name="checkall1" id="checkall1" onclick="CheckAll('frmname1',this)" />全选用户组1 </div>
<div class="Q_left_content">
<input type="checkbox" name="frmname1" value="用户1" />用户1
<input type="checkbox" name="frmname1" value="用户2" />用户2
<input type="checkbox" name="frmname1" value="用户3" />用户3
<input type="checkbox" name="frmname1" value="用户4" />用户4
<input type="checkbox" name="frmname1" value="用户5" />用户5
<input type="checkbox" name="frmname1" value="用户6" />用户6
<input type="checkbox" name="frmname1" value="用户7" />用户7
<input type="checkbox" name="frmname1" value="用户8" />用户8
<input type="checkbox" name="frmname1" value="用户9" />用户9 </div><br>
<div>
<input type="checkbox" name="checkall2" id="checkall2" onclick="CheckAll('frmname2',this)" />全选用户组2 </div>
<div class="Q_left_content">
<input type="checkbox" name="frmname2" value="用户10" />用户10
<input type="checkbox" name="frmname2" value="用户11" />用户11
<input type="checkbox" name="frmname2" value="用户12" />用户12
<input type="checkbox" name="frmname2" value="用户13" />用户13
<input type="checkbox" name="frmname2" value="用户14" />用户14
<input type="checkbox" name="frmname2" value="用户15" />用户15
<input type="checkbox" name="frmname2" value="用户16" />用户16
<input type="checkbox" name="frmname2" value="用户17" />用户17
<input type="checkbox" name="frmname2" value="用户18" />用户18 </div><br>
<div>
<input type="checkbox" name="checkall3" id="checkall3" onclick="CheckAll('frmname3',this)" />全选用户组3 </div>
<div class="Q_left_content">
<input type="checkbox" name="frmname3" value="用户19" />用户19
<input type="checkbox" name="frmname3" value="用户20" />用户20
<input type="checkbox" name="frmname3" value="用户21" />用户21
<input type="checkbox" name="frmname3" value="用户22" />用户22
<input type="checkbox" name="frmname3" value="用户23" />用户23
<input type="checkbox" name="frmname3" value="用户24" />用户24
<input type="checkbox" name="frmname3" value="用户25" />用户25
<input type="checkbox" name="frmname3" value="用户26" />用户26
<input type="checkbox" name="frmname3" value="用户27" />用户27
<input type="checkbox" name="frmname3" value="用户28" />用户28
<input type="checkbox" name="frmname3" value="用户29" />用户29
<input type="checkbox" name="frmname3" value="用户30" />用户30
</div><br>
</div> <div>已经被选中的好友 </div>
<div id="frmnamelist" style="border:1px red solid"> </div>
</body></html>没高亮,重发
我另外开贴,请JeffJian光临接分。