Ich habe eine Tabelle mit drei Spalten und mehreren Zeilen. Die zweite und dritte Spalte bestehen aus einem Textfeld (erstes Kind eines Containers) und einem Kontrollkästchen.Tetxtbox aktivieren/deaktivieren auf Kontrollkästchen aktivieren/deaktivieren mit Javascript
Textbox
<td class="SBS1 c4">
<input class="Medium InputText" type="text" name="QR~QID33#1~1~1~TEXT" id="QR~QID33#1~1~1~TEXT" value="" disabled="">
<label class="offScreen" for="QR~QID33#1~1~1~TEXT">&nbsp; - &nbsp; - hh</label>
</td>
Ankreuzfeld
<td class="SBS2 c7">
<input type="checkbox" id="QR~QID33#2~1~1" name="QR~QID33#2~1~1" value="Selected">
<label class="q-checkbox q-checked" for="QR~QID33#2~1~1"></label>
<label class="offScreen" for="QR~QID33#2~1~1">&nbsp; - random text</label>
</td>
Ich habe die Textfelder in jeder Zeile auf Checkbox deaktivieren und aktivieren und deaktivieren bzw. Javascript. Aber es scheint einige Page Lifecycle-Probleme mit dem Skript, das ich verwende. Hier ist das Javascript, das ich in meinem Qualtrics Umfrage JS Schnittstelle verwenden,
Qualtrics.SurveyEngine.addOnload(function()
{
/*Place Your JavaScript Here*/
var count=document.getElementsByClassName("q-checkbox").length;
for(var i=0;i<count;i++)
{
document.getElementsByClassName("q-checkbox")[i].parentNode.addEventListener("click",hideFunc);
}
function hideFunc()
{
console.log(this.className);
if(this.classList.contains("checkers"))
{
//this.classList.toggle("checkers");
this.previousSibling.previousSibling.previousSibling.firstChild.disabled="false";
this.classList.add("checkers");
return;
}
else
if(!(this.classList.contains("checkers")))
{
this.previousSibling.previousSibling.previousSibling.firstChild.disabled="true";
this.classList.remove("checkers");
return;
}
}
});
ich gerade versucht, die Klasse „Kontrolleure“ und die Einstellung „deaktiviert“ Eigentums der texboxes entsprechend zu wechseln oder hinzufügen/entfernen. Der Code oben in HideFunc ist einer der Workarounds, die ich ausprobiert habe, aber es funktioniert nicht.
Gibt es eine andere Möglichkeit, um die Checkbox zu ändern?
document.getElementById ('Checkbox "') überprüft gibt true zurück, wenn sein checked –