Hej,
Hur gör man för att referera till ett div namn som är dynamiskt uppbyggt?
Följande kod använder jag för att tända och släcka lite inputfält brevid checkboxar. Fungerar bra i internet explorer men bara med vissa doctypes.
Finns det något "riktigt" sätt att göra detta på som fungerar i alla moderna webläsare?
function funShowHideField(iFieldName){
alert("In function >> '" +iFieldName +"'")
//remove _check
iTargetFieldName = iFieldName.substring(0, iFieldName.length-6)
//add div
iTargetFieldName = iTargetFieldName +"Div"
//test if checkbox is checked
objCheckboxDiv = document.getElementById(iFieldName)
//If checked show div
if(objCheckboxDiv.checked == true){
document.getElementById(iTargetFieldName).style.visibility = 'visible';
} else {
document.getElementById(iTargetFieldName).style.visibility = 'hidden';
}
:stud
Nedan fungerar ej med följande doctype:
<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
document.getElementById(iFieldName)
Men följande fungerar naturligtvis... vill dock använda funktionen i min tidigare post.
document.getElementById("rMediaFormatDbId_check")
När anropar du funShowHideField()? Finns det divarna ens i DOM trädet?
<html>
<head>
<script type="text/javascript">
function funShowHideField(iFieldName){
//remove _check
iTargetFieldName = iFieldName.substring(0, iFieldName.length-6)
//add div
iTargetFieldName = iTargetFieldName +"Div"
//test if checkbox is checked
objCheckboxDiv = document.getElementById(iFieldName)
//If checked show div
document.getElementById(iTargetFieldName).style.visibility = (objCheckboxDiv.checked == true?'visible':'hidden');
}
</script>
</head>
<body>
<input type="checkbox" id="inptest-checkb" onclick="funShowHideField(this.id)" />
<div id="inptest-Div">
aa
</div>
</body>
</html>
fungera för mig, skrev om din JS kod lite, men den gör samma sak som din kod.