2016-04-16 7 views
1

をオフにする場合無効:Javascriptがチェックボックスをチェックしたときに入力タイプを有効にし、チェックボックスは、私のjavascriptはここにある

function enable(id) { 
     var i = (document.getElementById('haha').checked); 

     if(i= true) { 
     document.getElementById("nama_"+id).disabled= false; 
     document.getElementById("ket_"+id).disabled= false; 
     }else{ 
      document.getElementById("nama_"+id).disabled= true; 
     document.getElementById("ket_"+id).disabled= true; 
     } 
     } 

私がしたい、私はチェックボックスをチェックすると、テキストボックスが有効になりますが、私はオフにすると、そのテキストボックスがまだ有効チェックしないとこのテキストボックスは無効になります。どうすればこの問題を解決できますか?

答えて

2

=割り当て(変数の値を設定する)、そうif (i = true)セットifブロックにtrue、次いで分岐にiあります。比較を行うには、通常==または===を使用しますが、ブール値は必要ありません。ただ、直接値をチェック:

if (i) { 
    // Enable it 
} else { 
    // Disable it 
} 

をこの場合は、しかし、あなただけの直接iを使用することができます。

document.getElementById("nama_"+id).disabled = !i; 
document.getElementById("ket_"+id).disabled = !i; 

checkedの小切手の周り()の必要もありません。

私はおそらくこれを行うだろう:

あり
function enable(id) { 
    var disabled = !document.getElementById('haha').checked; 
    document.getElementById("nama_"+id).disabled = disabled; 
    document.getElementById("ket_"+id).disabled = disabled; 
} 

、私は、チェックボックスの値を取得し、それを反転し、他の入力にdisabledフラグとしてそれを使用しています。私はそれが好きで、デバッグするのが簡単なので、私はそれを好きになるだろう、私はコードをステップインしているときにデバッガで簡単にdisabledの値を見ることができます。

実際には、1つの表現で物事を本当にしたい人もいます。 (私はそれが非常に過大評価だと思う。)彼らがこれを行う可能性があります:

function enable(id) { 
    document.getElementById("nama_"+id).disabled = 
     document.getElementById("ket_"+id).disabled = 
      !document.getElementById('haha').checked; 
} 

...割り当ての結果が割り当てられた値であるから。

+0

ありがとうございます、それは動作します:D –

関連する問題