根据复选框状态禁用控件?

时间:2011-03-06 21:24:13

标签: 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) {
        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>

4 个答案:

答案 0 :(得分:1)

您的onclick格式错误:

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

请改用:

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

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

答案 1 :(得分:1)

您的字符串已损坏

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

尝试:

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

此外,根据w3schools,'?'字符在HTML ID中无效。

答案 2 :(得分:1)

你的onclick中有双引号,所以它打破了解析。更改: onclick="Disable(this.checked, "date?4" );"onclick="Disable(this.checked, 'date?4' );"

我也不得不放弃'?'在你的id中让它在jsFiddle中工作。认为某些浏览器可能不喜欢这样。

答案 3 :(得分:0)

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