我有一個三列和多行的表格。第二和第三列分別由一個文本框(一個容器的第一個孩子)和一個複選框組成。複選框啓用/禁用tetxtbox使用Javascript選擇/取消選擇
文本框
<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>
複選框
<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>
我不得不禁用和啓用每一行的文本框中的複選框檢查,並分別使用JavaScript取消。但是我使用的腳本似乎存在一些頁面生命週期問題。下面是我用我Qualtrics調查JS接口,
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;
}
}
});
我只是想切換或添加/刪除類「跳棋」,並相應地設置texboxes的「禁用」屬性的JavaScript。上面HideFunc中的代碼是我嘗試過的解決方法之一,但它不起作用。
是否有其他方法檢查複選框更改?
的document.getElementById(「複選框」「)檢查返回true,如果它檢查 –