js很简单的字符串过滤,在线跪求....
html代码如下:
<input type="text" id="txtfid" runat="server"/><input id="cb1" class="check" type="checkbox" name="cb1" value="01" onclick="javascript:fucheckbox(this.id,this.value);"/><input id="cb2" class="check" type="checkbox" name="cb2" value="02" onclick="javascript:fucheckbox(this.id,this.value);"/><input id="cb3" class="check" type="checkbox" name="cb3" value="03" onclick="javascript:fucheckbox(this.id,this.value);"/>
<script type="text/javascript"> function fucheckbox(_id,_value) { var txtfid=document.getElementById('txtfid'); var _obj=document.getElementById(_id); if(_obj.checked==true) { txtfid.value=txtfid.value.replace(_value+',',''); txtfid.value+=_value+','; } else { txtfid.value=txtfid.value.replace(_value+',','');//问题在这里//如果txtfid.value里面现有多个01,01,01,02,02,03,03,03,//如果当前取消选中的是value='01'的复选框,哪么就将所txtfid.value里面所有01,都过滤掉.//目前以上方法只能过滤掉一个,求解,谢谢了 } } </script>
function fucheckbox(_id,_value) { var txtfid=document.getElementById('txtfid').value; var _obj=document.getElementById(_id); var tmp[] = txtfid.split(","); for(var i = 0; i < tmp.length; i++) { if(_obj.checked==true) { if(tmp[i] == _value) { txtfid.value=txtfid.value.replace(_value+',',''); txtfid.value+=_value+','; }else { txtfid.value=txtfid.value.replace(_value+',',''); } } }