Hallo allerseits!
Ich möchte auf einer Seite die Display-Eigenschaft von einem <table>-Tag mit einer Checkbox steuern. Wenn die Checkbox ausgewählt wird, soll die Tabelle erscheinen, wenn sie abgewählt wird, soll die Tabelle wieder verschwinden.
Der Code, den ich zusammengestückelt habe, funktioniert in Firefox prima, allerdings nicht im IE 6.0.2800. Ich bekomme den Fehler "document.form1.orgcheck.checked" ist Null oder kein Objekt und kann mir das garnicht erklären. Außerdem kommt noch "undefined is Null oder kein Objekt". Der Vollständigkeit halber habe ich unten den ganzen Javascript-Code der Seite angegeben, obwohl dieser auch noch andere Funktionen für das Limitieren einer Eingabe in eine Textarea enthält, bei gleichzeitiger Ausgabe der schon eingegebenen Zeichen.
Hier der relevante HTML-Code:
[...]
<form name="form1" action="index.php" method="post" id="form1">
<input type="checkbox" name="orgcheck" value="yes" onclick="change('organization')" id="orgcheck">
<table id="organization" style="display: none;">
</table>
</form>
[...]
Das Komische ist, dass ich das Gleiche auf einer anderen Seite verwende und da funktioniert es auch im IE prima, weiß echt nicht weiter.
Für jede Hilfe dankbar!
Andreas
---------------------------------
<script type="text/javascript">
function change(tab)
{
countbox();
if (document.layers)
{
current = (document.layers[tab].display == 'none') ? 'block' : 'none';
document.layers[tab].display = current;
}
else if (document.getElementById)
{
vista = (document.getElementById(tab).style.display == 'none') ? 'block' : 'none';
document.getElementById(tab).style.display = vista;
}
}
function countbox()
{
if (document.form1.orgcheck.checked==true) {
document.getElementById("organization").style.display = 'none';
} else {
document.getElementById("organization").style.display = 'block';
}
}
var ns6=document.getElementById&&!document.all
function restrictinput(maxlength,e,placeholder){
if (window.event&&event.srcElement.value.length>=maxlength)
return false
else if (e.target&&e.target==eval(placeholder)&&e.target.value.length>=maxlength){
var pressedkey=/[a-zA-Z0-9.,/]/ //detect alphanumeric keys
if (pressedkey.test(String.fromCharCode(e.which)))
e.stopPropagation()
}
}
function countlimit(maxlength,e,placeholder){
var theform=eval(placeholder)
var lengthleft=maxlength-theform.value.length
var placeholderobj=document.all? document.all[placeholder] : document.getElementById(placeholder)
if (window.event||e.target&&e.target==eval(placeholder)){
if (lengthleft<0)
theform.value=theform.value.substring(0,maxlength)
placeholderobj.innerHTML=lengthleft
}
}
function displaylimit(theform,thelimit){
var limit_text='<span id="'+theform.toString()+'">'+thelimit+'</span>'
if (document.all||ns6)
document.write(limit_text)
if (document.all){
eval(theform).onkeypress=function(){ return restrictinput(thelimit,event,theform)}
eval(theform).onkeyup=function(){ countlimit(thelimit,event,theform)}
}
else if (ns6){
document.body.addEventListener('keypress', function(event) { restrictinput(thelimit,event,theform) }, true);
document.body.addEventListener('keyup', function(event) { countlimit(thelimit,event,theform) }, true);
}
}
</script>