<script> 
function choseItem() 

var v=""; 
var check_item = document.frm.item; 
for(i=0;i<check_item.length;i++) 

if(check_item[i].checked) 

v+=","+check_item[i].value; 
alert(v);

var   reg   =   /^([\u4E00-\u9FA5]+)([0-9]+)/gi;  
var   testString   =   v.replace(/^,{1}/,"");
reg.exec(testString); 
document.frm.txt.value=(RegExp.$1);  
document.frm.txt1.value=(RegExp.$2); 


function foo() 

window .close(); 
window .opener.document.getElementById("txt0").value=document.getElementById("txt").value 
window .opener.document.getElementById("txt1").value=document.getElementById("txt1").value 

</script> 
<body> 
<form name=frm> 
<input type=checkbox name=item value="中国人4343434" onClick="choseItem();">a 
<input type=checkbox name=item value="是我4443344" onClick="choseItem();">b 
<input type=checkbox name=item value="还是我2233233" onClick="choseItem();">c 
<input type=checkbox name=item value="嗯嗯嗯1122111" onClick="choseItem();">d 
<input  type=text name="txt" id="txt"> 
<input  type=text name="txt1" id="txt1"> 
</form> 
</body> 
当前这个页面只有第一个复选框好用,后面几个就当了用了!请前辈指点

解决方案 »

  1.   

    你是想说多选之后只有最左边的value被拆分到两个input type=text里面?
      

  2.   


    //说明:lz,你的错误出在正则上面,我也不知道更好修改正则表达式,不过我根据你的要求改了下choseItem函数,如下:
    function choseItem()  
    {  
    var v="";  
    var check_item = document.frm.item;  
    for(i=0;i<check_item.length;i++)  
    {  
    if(check_item[i].checked)  
    {  
       v+=","+check_item[i].value;  
    }  
    }document.frm.txt.value="";
    document.frm.txt1.value="";
    if(v.length>1)
    {
    var str=v.replace(/^,{1}/,"").split(',');
    for(var i=0;i<str.length;i++)
    {  
       var reg = /^([\u4E00-\u9FA5]+)([0-9]+)/gi;   
       reg.exec(str[i]);  
       document.frm.txt.value+=document.frm.txt.value==""?(RegExp.$1):("|"+RegExp.$1);   
       document.frm.txt1.value+=document.frm.txt1.value==""?(RegExp.$2):("|"+RegExp.$2);  
    }
    }
    }   
      

  3.   

    lz你可以再优化下,把下面循环给文本框赋值的操作放到上面判断是否check的循环中。