Javascript 是否基于复选框状态禁用控件?

Javascript 是否基于复选框状态禁用控件?,javascript,checkbox,Javascript,Checkbox,我想在下面的HTML和javascript中禁用引用的控件,但它没有这样做。看起来很简单。我会错过什么 <html xmlns="http://www.w3.org/1999/xhtml"> <head><title> </title> <script language="javascript" type="text/javascript"> function Disable(isDisable, controlID) {

我想在下面的HTML和javascript中禁用引用的控件,但它没有这样做。看起来很简单。我会错过什么

<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>

</title>
<script language="javascript" type="text/javascript"> 

    function Disable(isDisable, controlID) {
        var objControl = document.getElementById(controlID);

        if (objControl != null) {
            objControl.disabled = isDisable;
        }
    }
</script>
</head>
<body>
    <form name="form1" id="form1">


<input name="date?4" type="text" value="1/1/2011 12:00:00 AM" id="date?4" runat="server" style="border-color:Black;font-family:Arial;width:300px;" 

/><input type="checkbox" style="font-family: Arial" onclick="Disable(this.checked, "date?4" );" >Disable
</form></body>
</html>

功能禁用(isDisable,controlID){
var objControl=document.getElementById(controlID);
if(objControl!=null){
objControl.disabled=可禁用;
}
}
使残废

您正在使用“内”封闭属性。

您的onclick格式不正确:

onclick="Disable(this.checked, "date?4" );"
改用这个:

onclick="Disable(this.checked, 'date?4' );"

如果使用双引号(
)作为属性值分隔符,则不能在值内使用它们而不转义它们。应该在值内使用单引号(
)。

您的字符串被打断

onclick="Disable(this.checked, "date?4" );"
尝试:

onclick="Disable(this.checked, 'date?4' );"

此外,根据,字符“?”在HTML ID中无效。

您的onclick中有双引号,因此它破坏了解析。更改:
onclick=“禁用(选中此项,“日期?4”);“
onclick=“禁用(this.checked,'date?4');“


我还必须在你的id中删除“?”才能让它在JSFIDLE中工作。我想有些浏览器可能不喜欢这样。

为什么你的输入id中有问号?噢!!谢谢你的快速回复!!就是这样。真的吗?我一直在用“?”?“在身份证上有一段时间没有问题了。在ie、Chrome和FF中。@user259286我从未做过,但我有疑问,搜索了一下,找到了那个页面。