日期:2014-05-20 浏览次数:20948 次
<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+',','');
                }
            }
        }