Javascript onclick与getElementById不工作

问题描述:

简单的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

禁用的输入不捕获点击事件。

请参阅a simplified demo

the specification参见:

被禁用必须防止排队的用户交互任务源从元素上分派任何点击事件表单控件。


你需要重新考虑你的UI或避免元素被禁用或避免不需要被点击就可以了。

+0

美丽......我无法弄清楚我的生活。我会尝试使用readonly而不是禁用...谢谢! – 2013-05-07 16:53:32

将输入包裹在另一个块元素中;将onclick事件附加到该事件。

您不能“点击”禁用的输入。但点击事件是由父母捕获的。

<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>