多行select中的数据展示和单个删除
/** 删除多选select中 的某个值,公共方法 只适用于同级节点下只有一个select的情况 v 此按钮,this _id,option中的value的name属性 _name,option中的text的name属性 ***如果每次添加不清空options,而是在原有基础添加 pr_id:备用value,需要保留select中之前的数据时填写 pr_name:备用 name,需要保留select中之前的数据时填写 */ function deletedOne(v,_id,_name,pr_id,pr_name){ var id="input:hidden[name="+_id+"]"; var name="input:hidden[name="+_name+"]"; var parent=$(v).parent(); var sele=parent.find("select")[0]; var options=sele.options; if(options){ for(var i=0;i<options.length;i++){ if(options[i].selected){ options.remove(i); } } var idstr=""; var namestr=""; for(var i=0;i<options.length;i++){ if(!options[i].selected){ if(idstr==""){ idstr=options[i].value; namestr=options[i].text; }else{ idstr=idstr+","+options[i].value; namestr=namestr+","+options[i].text; } } } var id_node=parent.find(id)[0]; var name_node=parent.find(name)[0]; $(id_node).val(idstr); $(name_node).val(namestr); if(pr_id && pr_name){ var _id_node=parent.find("input:hidden[name="+pr_id+"]")[0]; var _name_node=parent.find("input:hidden[name="+pr_name+"]")[0]; $(_id_node).val(idstr); $(_name_node).val(namestr); } } } /** 公共的多选框显示方法 v:按钮 _id:value的name属性 _name:text的name属性 ****如果每次添加不清空options,而是在原有基础添加 _pr_id:备用字段value,需要保留select中之前的数据时填写 _pr_name:备用字段name,需要保留select中之前的数据时填写 */ function showSelect(v,_id,_name,_pr_id,_pr_name){ var parent=$(v).parent(); //获取同级下的节点 var name_node=parent.find("input:hidden[name="+_name+"]")[0]; var id_node=parent.find("input:hidden[name="+_id+"]")[0]; var idstr=$(id_node).val(); var namestr=$(name_node).val(); var ids=idstr.split(","); var names=namestr.split(","); //两个字段不为空时进行拼接操作,并把当前数据保留至备用位置 if(_pr_id && _pr_name){ var pr_id_node=parent.find("input:hidden[name="+_pr_id+"]")[0]; var pr_name_node=parent.find("input:hidden[name="+_pr_name+"]")[0]; var pr_idstr=$(pr_id_node).val(); var pr_namestr=$(pr_name_node).val(); if(pr_idstr){ for(var i=0;i<ids.length;i++){ var index=(pr_idstr+",").indexOf(ids[i]+","); if(index==-1){ pr_idstr=pr_idstr+","+ids[i]; pr_namestr=pr_namestr+","+names[i]; } } $(pr_id_node).val(pr_idstr); $(pr_name_node).val(pr_namestr); $(id_node).val(pr_idstr); $(name_node).val(pr_namestr); }else{ $(pr_id_node).val(idstr); $(pr_name_node).val(namestr); } } //把值显示出在多选框 var sele=parent.find("select")[0]; $(sele).empty(); var result_str=$(id_node).val(); if(result_str){ var result_ids=result_str.split(","); var result_name=$(name_node).val().split(","); for(var i=0;i<result_ids.length;i++){ var opt=new Option(result_name[i],result_ids[i]); opt.title=result_name[i]; sele.add(opt); } } }
这个人很懒,什么也没下留。