问题描述
我要实现如图所示的一个多选列表框,左边是一个jqgrid,右边是一个select.当点击“选择”的时候,左边的选中行消失,右边的select出现一行记录,这个已经搞定了,我不会的是,当我点击“删除”的时候,如何select的选中行消失,jqgrid中出现那行记录。貌似jqgrid没有让行隐藏的办法吧,我想用map,js中貌似也没得map,那我该怎么办呢? 问题补充:pigswimming 写道
解决方案
归根结底,你喜欢对左侧的jqgrid的local date 进行add 和delete操作,点确定才提交后台服务器吧。“jqgrid中出现那行记录”很简单,用$("#gridID").addRowData(index,rowdata)即可
解决方案二:
引用这位兄弟 你实现的是select到select的功能哈 其实这种还有更简洁的代码 Js代码 $("#selected option").appendTo("#content"); 惭愧啊
解决方案三:
<td> <input name="Submit23" type="button" align="center" class="button" value="删除<-" onClick="doMove(mright,mleft,1)"><br></td>function doMove(sourceObj,targetObj,flag){ if(sourceObj.selectedIndex==-1) return; var oOption = document.createElement("OPTION"); var selItem = sourceObj.options[sourceObj.selectedIndex]; oOption.text=selItem.text; oOption.value=selItem.value; if(check(selItem,targetObj)){ targetObj.add(oOption); sourceObj.remove(sourceObj.selectedIndex); if(flag && targetObj.selectedIndex!=-1) { var temp = targetObj.options[targetObj.options.length-1]; for(var i=targetObj.options.length-1;i>targetObj.selectedIndex;i--) { var temp2 = targetObj.options[i-1]; var tempOption = document.createElement("OPTION"); tempOption.value = temp2.value; tempOption.text = temp2.text; targetObj.options[i] = tempOption; } targetObj.options[targetObj.selectedIndex] = temp; } } }function check(sourceoption,targetObj){for(var i=0;i<targetObj.options.length;i++) { var temp2 = targetObj.options[i]; if(sourceoption.value==temp2.value) return false; }return true;}