2013-05-07 109 views
0

簡單的onclick函數來啓用HTML文本框不工作...單擊文本框時沒有任何反應。使用變量作爲id的一部分。Javascript onclick與getElementById不工作

<script language="JavaScript"> 

function unlock(id) 
{ 
    document.getElementById('strain'+id).disabled=false; 
    return false; 
} 

    </script> 


<input id="strain343" type="text" value="54.24" onclick="return unlock(343);" disabled="true" name="strain"></input> 
+0

JS屬於.js文件,您不應該需要使用服務器端代碼構建功能性JS。 – zzzzBov 2013-05-07 16:39:34

+2

呈現的HTML看起來像什麼? – j08691 2013-05-07 16:40:16

+0

您的PHP沒有生成您想要的JS/HTML,或者您生成的JS/HTML沒有達到您的期望值。確定是什麼。然後提出一個問題,詢問如何讓PHP生成你想要的JS或者如何讓JS做你想做的事情。不要向我們展示PHP並要求我們調試生成的JavaScript。 – Quentin 2013-05-07 16:44:36

回答

3

禁用的輸入不捕獲點擊事件。

請參閱a simplified demo

the specification參見:

被禁用必須防止排隊的用戶交互任務源從元素上分派任何點擊事件表單控件。


你需要重新考慮你的UI或避免元素被禁用或避免不需要被點擊就可以了。

+0

美麗......我無法弄清楚我的生活。我會嘗試使用readonly而不是禁用...謝謝! – 2013-05-07 16:53:32

0

將輸入包裹在另一個塊元素中;將onclick事件附加到該事件。

0

您不能「點擊」禁用的輸入。但點擊事件是由父母捕獲的。

<div id="strainWrapper" onclick="unlock(343)"> 
     <input class="strainTB" id="strain343" type="text" value="54.24" disabled="true"></input> 
    </div> 
    <script> 
     function unlock(id) { 
      document.getElementById('strain' + id).disabled = false; 
      return false; 
     } 
    </script>