2011-03-06 72 views
1

我想禁用下面的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> 
+1

爲什麼你的輸入ID有一個問號? – NT3RP 2011-03-06 21:27:19

回答

1

你的onclick格式錯誤:

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

使用這個代替:

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

如果使用雙引號(")爲您的屬性值的分隔符,你不能使用它們裏面的價值沒有逃脫他們。你應該在裏面使用單引號(')。

+0

D'oh !!感謝您的快速回復!!就是這樣。 – user259286 2011-03-06 21:29:31

0

您正在使用「內部」封閉屬性。

1

你的字符串在

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

打破嘗試:

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

此外,根據w3schools,在 '?'字符在HTML ID中無效。

+0

真的嗎?我一直在使用「?」在ID的一段時間沒有問題。 IN即Chrome和FF。 – user259286 2011-03-06 22:09:38

+0

@ user259286我從來沒有這樣做過,但我有疑問,搜索它並找到該頁面。 – Marcelo 2011-03-07 05:00:05

1

在你的onclick中有雙引號,所以它破壞了解析。變化: onclick="Disable(this.checked, "date?4");"onclick="Disable(this.checked, 'date?4');"

我也不得不放棄了 '?'在你的ID來讓它在jsFiddle中工作。想想一些瀏覽器可能不喜歡那樣。