2016-04-16 16 views
1
ungeprüft

mein Javascript ist hier:Javascript aktiviert Eingabetyp, wenn Checkbox aktiviert und deaktiviert, wenn Checkbox

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

wenn i Kontrollkästchen aktiviert, wird das Textfeld aktiviert ist, aber wenn ich nicht angehakt, dass Textbox noch aktivieren, ich möchte Dieses Textfeld wird deaktiviert, nachdem ich es deaktiviert habe. Wie kann ich dieses Problem beheben?

Antwort

2

= ist Zuordnung (der Wert einer Variablen gesetzt wird), so if (i = true)Sätzei zu true und verzweigt dann in die if Block. Um einen Vergleich durchzuführen, würden Sie normalerweise == oder === verwenden, aber mit booleschen Werten ist das nie notwendig. nur den Wert direkt überprüfen:

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

In dies Fall, obwohl Sie nur i direkt verwenden können:

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

Es gibt auch keine Notwendigkeit für die () um Ihren Scheck von checked.

Ich würde wahrscheinlich tun:

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

Dort habe ich den Wert der Checkbox bekommen und es invertiert, dann mit, dass als disabled Flagge auf den anderen Eingängen. Ich würde es so machen, weil es schön und leicht zu debuggen ist, ich kann den disabled Wert leicht im Debugger sehen, wenn ich durch Code gehe.

Einige Leute wirklich, wirklich gerne Dinge in einem Ausdruck zu tun. (Ich denke, das ist sehr überbewertet.) Sie könnten dies tun:

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

... da das Ergebnis einer Zuweisung der Wert ist, zugeordnet wurde.

+0

danke, es funktioniert: D –

Verwandte Themen