Checkbox Disable

goto;

Erfahrenes Mitglied
Hallo liebe Community,
ich habe folgendes Problem. Mit diesem Script :
HTML:
<script>function toggleRB(objRB){
  var blnDisabled = true;
  var arrWQ = document.getElementsByName("rbSecond");

  if(objRB.value == "1"){
    blnDisabled = false;
  }else{
    arrWQ[2].checked = true;
  }

for(var iii=0; iii<arrWQ.length; iii++){
  arrWQ[iii].disabled = blnDisabled;
}
}</script>
Steuer ich Zwei Checkboxen. D.h. Wenn die erste checkbox den Wert 1 hat sind beide Sichtbar, wenn der Wert 2 in der Ersten Checkbox gewählt wird wird die Zweite Checkbox Deaktiviert.
Ist es möglich hier noch 2 Inputfelder mit einzubinden?
Wenn ja, könnt Ihr mir einen Tipp geben. Oder ein Tut wo soetwas beschrieben ist? Hab es zwar geschafft ein Input feld einzubinden, jedoch wird dann die Zweite Checkbox ignoriert.
Danke für die Hilfe.
Frohe Weihnachten :)
 
Hi,

du könntest die Namen der Inputfelder in einem Array verwalten. Dieses durchläufst du, ermittelst die zugehörigen Elemente und modifizierst diese entsprechend.

Beispiel:
Code:
function disableAll(){
  // Namen der Inputfelder
  var arrInput = ["txtN1", "txtN2"];
  // Kollektion der Radiobuttons
  var arrDis = document.getElementsByName("rbName");

  // Elemente der Kollektion disablen
  for(var i=0; i<arrDis.length; i++){
    arrDis[i].disabled = true;
  }

  // Inputs disablen
  for(var i=0; i<arrInput.length; i++){
    // Falls mehr als ein Element mit dem Name existieren -> alle disablen
    if(document.getElementsByName(arrInput[i]).length > 1){
      for(var j=0; j<document.getElementsByName(arrInput[i]).length; j++){
        document.getElementsByName(arrInput[i])[j].disabled = true;
      }
    // Falls nur ein Element mit dem Name existiert
    }else{
      document.getElementsByName(arrInput[i])[0].disabled = true;
    }
  }
}

Ciao
Quaese
 
Hallo, hab das Script jetzt an meine bedürfnisse angepasst. Jedoch will ich noch, dass wenn die Inputfelder Deaktiviert sind, dass dann der Inhalt noch gelöscht wird, mit meinem Versuch .value = ""; Funktioniert es scheinbar nicht. Wie muss ich es schreiben damit es funktioniert?
Code:
<script type="text/javascript">
function toggleRB(objRB){
  var arrInput = ["accn", "psw", "date-2", "date-2-mm", "date-2-dd"];
  var arrDis = document.getElementsByName("rbSecond");
  
  if(objRB.value == "1") {
	for(var i=0; i<arrDis.length; i++){
    arrDis[i].disabled = false;
	arrDis[1].checked = true;
	arrInput.value = "";
  }
  for(var i=0; i<arrInput.length; i++){
    if(document.getElementsByName(arrInput[i]).length > 1){
      for(var j=0; j<document.getElementsByName(arrInput[i]).length; j++){
        document.getElementsByName(arrInput[i])[j].disabled = false;
      }
    }else{
      document.getElementsByName(arrInput[i])[0].disabled = false;
    }
  }
  
  
  }else{
  
  
  for(var i=0; i<arrDis.length; i++){
    arrDis[i].disabled = true;
	arrDis[2].checked = true;
  }
  for(var i=0; i<arrInput.length; i++){
    if(document.getElementsByName(arrInput[i]).length > 1){
      for(var j=0; j<document.getElementsByName(arrInput[i]).length; j++){
        document.getElementsByName(arrInput[i])[j].disabled = true;
      }
    }else{
      document.getElementsByName(arrInput[i])[0].disabled = true;
    }
  }
}
}
  </script>
Danke im vorraus
 
Hi,

versuch mal die Werte in der Schleife zu löschen, in der die Inputfelder wieder aktiviert werden.
Code:
  for(var i=0; i<arrInput.length; i++){
    if(document.getElementsByName(arrInput[i]).length > 1){
      for(var j=0; j<document.getElementsByName(arrInput[i]).length; j++){
        document.getElementsByName(arrInput[i])[j].disabled = false;
        document.getElementsByName(arrInput[i])[j].value = "";
      }
    }else{
      document.getElementsByName(arrInput[i])[0].disabled = false;
      document.getElementsByName(arrInput[i])[0].value = "";
    }
  }

Ciao
Quaese
 
Zurück