日期:2014-05-16  浏览次数:20443 次

jquery实现单选和不选的功能问题——求高手!

<div style="margin:20px">
    <input name="a" type="checkbox" value="1" /><span>1</span>
    <input name="a" type="checkbox" value="2" /><span>2</span>
    <input name="a" type="checkbox" value="3" /><span>3</span>
    <input name="a" type="checkbox" value="4" /><span>4</span>
    <input id="t" type="text" value="" />
</div>


$(function(){
$(":checkbox[name=a]").click(function(){
if($(this).attr('checked')){
                $("input:checkbox[name=a]").not($(this)).attr('checked',false);
                }
});
});

以上已经是单选功能
请问,怎么样修改才能实现,选中后,输入框T加上选中的值,不选中将删去复选框的值。
请勿使用$('#t')val("")来重置输入框T,因为输入框可接受用户输入,不能将用户输入的值删除,只能删去复选框的值

------解决方案--------------------
引用:
也许我描述的不清楚。

我为什么要用复选框代替单选框呢? 因为单选框,一旦选中就不可取消。而复选框可以选中,也可以不选中。

我要实现的就是,当选中的时候,把选中的值传递到t,如果用户依次点击1、2、3、4,传递到t的值需要替换之前传递的值,也就是说,如果用户先输入“王”,然后依次点击1、2、3、4,那么出现的值只能是
王1、王2、王3、王4。 如果都不选中,出现的值必须返回“王”。

如果用户输入的是1,然后依次点击1、2、3、4,那么出现的值是11、22、33、44,如果都不选中,变回1。

能实现么?


$(function(){
var oldValue = "";
    $(":checkbox[name=a]").click(function(){
     var regex = eval("/" + oldValue + "$/gi");
        if($(this).prop('checked')){
            $("input:checkbox[name=a]").not($(this)).prop('checked',false);
            //var regex = eval("/" + oldValue + "$/gi");
            $("#t").val($("#t").val().replace(regex, "") + $(this).val());
            oldValue = $(this).val();
        } else {
         $("#t").val($("#t").val().replace(regex, ""));
         oldValue = "";
        }   
    });
});

是这样不?