2017-08-24 92 views
2

我试图启用一个P元素点击禁用的元素。下面的代码将存储从文本框中的值到另一个文本框,我已经附加了div.later这个文本框将被禁用。将鼠标悬停在div上将出现编辑和删除。单击编辑时,div内的文本框必须再次启用。启用禁用的元素

<div id="ta"></div> 
<input type="text" id="tb"><br> 
<button onclick="add()">Submit</button><br>  

<script type="text/javascript"> 

var ta=""; 
    function add() { 
     var newDiv="",newTa="",newP="",newImg=""; 

     ta=document.getElementById('ta'); 
    newDiv = document.createElement("div"); 

    ta.appendChild(newDiv); 

    newTa = document.createElement("input"); 
    newTa.type="text" 
     newTa.disabled="true"; 
     newTa.value=document.getElementById("tb").value; 

     newDiv.onmousedown=function(){ 

     newP.style.visibility="visible"; 
    newImg.style.visibility="visible"; 

     }; 


     newP=document.createElement("p"); 

     newP.innerHTML="Edit"; 
     newP.style.visibility="hidden"; 
     newP.style.display="inline"; 
     newP.style.padding="5px"; 
     newP.onclick=function() 
     { 
      newTa.disabled="false";//this is not working 

     } 

为什么它不起作用?有没有其他方法可以做到这一点?

+0

是 '假' 必须引? – ProEvilz

+0

提供了一个工作示例 –

+0

BadHorsie的回答是正确的。像这样的问题通常是由于HTML属性和DOM节点属性之间的差异而导致混淆的结果,因此以下是一个很好的解读:https://stackoverflow.com/questions/6003819/properties-and-attributes-in-html –

回答

1

原因可能是因为您提供"false"作为字符串。 From another answer here

[...]一个非空字符串是truthy。因此,将“false”分配给禁用属性具有将其设置为true的相同效果。

尝试使用适当的布尔值代替。

newTa.disabled = false;