Javascript 如何在选中文本框时禁用文本框

Javascript 如何在选中文本框时禁用文本框,javascript,jquery,html,Javascript,Jquery,Html,我试图按照教科书,但结果不会禁用我的网站上的文本框时,我点击复选框 <form action="#"> Billing Address same as Shipping Address: <input type="checkbox" name="billingAdd" id="billingAdd"> <br><br> Street Address <input type="text" id="str

我试图按照教科书,但结果不会禁用我的网站上的文本框时,我点击复选框

 <form action="#">
    Billing Address same as Shipping Address:
    <input type="checkbox" name="billingAdd" id="billingAdd">
    <br><br>
    Street Address
    <input type="text" id="street" name="street" class="baddr">
    <br><br>
    City:
    <input type="text" id="city" name="city" class="baddr">
    </form>

<script type="text/javascript">
    $(document).ready(function()    {
        $("#billingAdd").click(function()   {
            if ($("#billingAdd").attr("checked") == "checked")  {
                $(".baddr").val("");
                $(".baddr").attr("disabled","disabled");
            } else if ($("#billingAdd").attr("checked") == undefined) {
                $(".baddr").removeAttr("disabled");
            }
        });
    });
</script>

账单地址与发货地址相同:


街道地址

城市: $(文档).ready(函数(){ $(“#账单添加”)。单击(函数(){ 如果($(“#billingAdd”).attr(“已检查”)=“已检查”){ $(“.baddr”).val(“”); $(“.baddr”).attr(“禁用”、“禁用”); }else if($(“#billingAdd”).attr(“选中”)==未定义){ $(“.baddr”).removeAttr(“禁用”); } }); });
您可以这样做(您应该使用
prop()
,而不是
attr()
/
removeAttr()
):


非常感谢您的支持,它很有效:)。你能解释一下为什么我的代码不起作用吗?(我遵循教科书“php、mysql、javascript和html for dummies-book3 chap5”)@user3527561不用担心-这本书可能已经相当老了-注意你的代码在jQuery 1.6()中工作。现在,我们没有删除属性,而是简单地将elements属性设置为false/true等:)
$(document).ready(function()    {
    $("#billingAdd").click(function() {
        if (this.checked)  {
           $(".baddr").val("");
        }
        $(".baddr").prop("disabled", this.checked);
    });
});