Nils P.: Mozilla kennt Variable nicht mehr ...?

Beitrag lesen

Hi,

Die meisten hier vermeiden entsprechende Szenarien, da sie per se problematisch sind - ob nun wegen Variablen, weil die Seite nicht gebookmarkt werden kann (Usability) oder wegen anderer Gründe.

Du meinst, weil man diese Seite nicht mit einem feststehenden Eingabewert bookmarken könnte?

Das Problem _nicht_ ganz anders zu lösen würde ich mit dem Attribut "Not" versehen ;-)

Dann bitte ich doch glatt um einen Tipp, wie man das am besten lösen könnte - ah, ich höre schon "serverseitig" - aber ich will doch im Moment JavaScript lernen... Meine momentane Lösung sieht so aus wie unten angefügt (mit viel Hilfe des SelfHTML-Archivs).

cu,
Nils

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<title>Primzahlen</title>
<script type="text/javascript">
<!--

function primCheck()
{
 var prim = true;
 var zahl = document.test.eingabe.value;
 var alleTeiler='';

if(zahl>0)
 {
  for(var i=2;i<=(zahl/2);i++)    // Teiler können max zahl/2 werden
  {
   if((zahl % i)==0)
   {
    if(prim)
    {
     alleTeiler = zahl+' ist keine Primzahl. Die Teiler sind:<br>'
    }
    prim = false;
    alleTeiler += '<br>'+i;
   }
  }
  schreibe(prim,zahl,alleTeiler);
 }
}

function schreibe(prim,zahl,alleTeiler)
{
 if (prim)
 {
  if (document.getElementById)
   document.getElementById('teilerListe').innerHTML = zahl+' ist eine Primzahl.';
  else if (document.all)
   document.all['teilerListe'].innerHTML = zahl+' ist eine Primzahl.';
  else if (document.layers)
  {
   document.layers['teilerListe'].document.open ();
   document.layers['teilerListe'].document.write (zahl+' ist eine Primzahl.');
   document.layers['teilerListe'].document.close ();
  }
 }

else
 {
  if (document.getElementById)
   document.getElementById('teilerListe').innerHTML = alleTeiler;
  else if (document.all)
   document.all['teilerListe'].innerHTML = alleTeiler;
  else if (document.layers)
  {
   document.layers['teilerListe'].document.open ();
   document.layers['teilerListe'].document.write (alleTeiler);
   document.layers['teilerListe'].document.close ();
  }
 }
}

//-->
</script>
</head>
<body>
<form name="test">
<input type="text" name="eingabe">
<input type="submit" onClick="primCheck();return false;" value="Primzahl?">
</form>
<div id="teilerListe" style="position:absolute;top:70px;left:10px;"> </div>
</body></html>