2017-08-24 13 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

ないことを 'false' に必要引用? – ProEvilz

+0

実例を提供 –

+0

BadHorsieの答えは正しいです。このような問題は、多くの場合、HTML属性とDOMノードのプロパティの違いについて混乱しているため、よく読んでください:https://stackoverflow.com/questions/6003819/properties-and-attributes-in-html –

答えて

1

理由はおそらく"false"を文字列として提供しているためです。 From another answer here

[...]空でない文字列は真実です。したがって、無効なプロパティに "false"を割り当てると、trueに設定するのと同じ効果があります。

代わりに適切なブール値を使用してください。

newTa.disabled = false; 
0
newTa.disabled="true" 
newTa.disabled="false" 

これら二つは、そうでない場合は

newTa.disabled=true 
newTa.disabled=false 

は、あなたがこのようにそれを行うことができます "" せずに次のようになります。

var x = document.getElementById("mySelect").disabled; 

https://www.w3schools.com/jsref/prop_select_disabled.asp

関連する問題