Antworten auf deine Fragen:
Neues Thema erstellen

JS - Codingfehler?

Rum0

PSler

Ich hab mal wieder ein problem, und zwar habe ich ein Script gefunden, dass Divs versteckt bzw. zeigt, wenn die value eines select feldes gerade die id des divs ist...
wenn amn aber etwas auswählt, wird das div natürlich gezeigt, und die anderen versteckt.... beim reloaden der seite mit dem formular... oder beim abschicken und danach per history.back nimmt das select feld wieder die value an, die beim abschicken bzw. neuladen ausgewählt war... das Div-Tag bleibt aber versteckt, da es so im Css vermerkt ist, was bein normalen laden der seite natürlich gut ist, so aber nicht....

Ahja, Name des formulars: search

naja... hier einfach mal der code...
DIE FUNKTION:
Code:
    function HideShow(value,divclass) 
    { 
        var divs=document.getElementsByTagName("DIV"); 
        for (var i=0;i<divs.length;i++) 
        { 
            if (divs[i].className==divclass) 
            { 
                divs[i].style.display=
               (
                (divs[i].id==value)?
                "block":"none"
               ); 
             }; 
        } 
    }
DAS CSS:
Code:
        #armor 
        { 
            block:none; display:none
          }
        #weapon 
        {
            block:none; display:none
          }
        #epic 
        {
            block:none; display:none
          }
DAS HTML:
Code:
<select name="equip" onchange="HideShow(this.value,'equip')">
    <option selected="selected" value="all">all kinds of equipment</option>
    <option value="weapon">only weapons</option>
    <option value="armor">only armory</option>
</select>
<br />
<div id="weapon" class="equip">

//irrelevanter Content

</div>
<div id="armor" class="equip">

//irrelevanter Content

</div>
<select name="special" onchange="HideShow(this.value,'special')">
     <option value="all" selected="selected">unspecial too</option>
      <option value="epic">only Epic - Equipment</option>
</select>
<div id="epic" class="special">

//irrelevanter Content

</div>
Ich ahbe jetzt mal nur die relevanten Teile gezeigt, da es so schon lang genug ist :P
Ich hatte es mit folgender Funktion versucht, die bei <body onload ausgeführt werden soll...
sie klappt aber nicht...
Meine Funktion nur für den Id="weapon"-Div-Tag:
Code:
    function onload() 
    { 
        var divsid = document.getElementById('weapon');
        if (document.search.equip.value == "weapon") 
        { 
            divsid.style.display="block"; 
         }; 
    }
Ich bin schon stolz gewesen, dass ich die Funktion HideShow so umgemodelt gekriegt habe, dass sie sich auf mehrere select felder erweitern ließ, ohne sie unter anderem namen zu kopieren...
abe hier kriegs ich nicht hin ;(

MfG und Thx im Vorraus,

Rum0
 
Zuletzt bearbeitet:

AW: JS - Codingfehler?

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
<html><head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">


<title>Drag &amp; Drop</title>

<style type="text/css">
#armor 
        { 
           display:none
          }
        #weapon 
        {
            display:none
          }
        #epic 
        {
            display:none
          }
</style>

<script language="JavaScript" type="text/javascript"><!--
      function HideShow(value,divclass) 
    { 
        var divs=document.getElementsByTagName("DIV"); 
        for (var i=0;i<divs.length;i++) 
        { 
            if (divs[i].className==divclass) 
            { 
                divs[i].style.display=
               (
                (divs[i].id==value)?
                "block":"none"
               ); 
             }; 
        } 
    }
    //-->
</script>
</head><body>
<select name="equip" id="equip" onchange="HideShow(this.value,'equip')">
    <option value="all">all kinds of equipment</option>
    <option selected="selected" value="weapon">only weapons</option>
    <option value="armor">only armory</option>
</select>
<br />
<div id="weapon" class="equip">

//irrelevanter Content

</div>
<div id="armor" class="equip">

//irrelevanter Content

</div>
<select name="special" onchange="HideShow(this.value,'special')">
     <option value="all" selected="selected">unspecial too</option>
      <option value="epic">only Epic - Equipment</option>
</select>
<div id="epic" class="special">

//irrelevanter Content

</div>
<script type="text/javascript">
<!--
     function onload() 
    { 
        var divsid = document.getElementById('weapon');
        if (document.getElementById('equip').value == "weapon") 
        { 
            divsid.style.display="block"; 
         }; 
    }
   //-->
</script>
</body></html>
 
AW: JS - Codingfehler?

es gibt keine Eigenschaft "block".
die Eigenschaft heisst 'display', und kann die werte 'block', 'inline', 'none' , ... haben.
Stimmt, danke schön... hab ich jetzt natürlich geändert, ändert aber nichts daran, dass meine Funktion nicht funktioniert...
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
<html><head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">


<title>Drag &amp; Drop</title>

<style type="text/css">
#armor 
        { 
           display:none
          }
        #weapon 
        {
            display:none
          }
        #epic 
        {
            display:none
          }
</style>

<script language="JavaScript" type="text/javascript"><!--
      function HideShow(value,divclass) 
    { 
        var divs=document.getElementsByTagName("DIV"); 
        for (var i=0;i<divs.length;i++) 
        { 
            if (divs[i].className==divclass) 
            { 
                divs[i].style.display=
               (
                (divs[i].id==value)?
                "block":"none"
               ); 
             }; 
        } 
    }
    //-->
</script>
</head><body>
<select name="equip" id="equip" onchange="HideShow(this.value,'equip')">
    <option value="all">all kinds of equipment</option>
    <option selected="selected" value="weapon">only weapons</option>
    <option value="armor">only armory</option>
</select>
<br />
<div id="weapon" class="equip">

//irrelevanter Content

</div>
<div id="armor" class="equip">

//irrelevanter Content

</div>
<select name="special" onchange="HideShow(this.value,'special')">
     <option value="all" selected="selected">unspecial too</option>
      <option value="epic">only Epic - Equipment</option>
</select>
<div id="epic" class="special">

//irrelevanter Content

</div>
<script type="text/javascript">
<!--
     function onload() 
    { 
        var divsid = document.getElementById('weapon');
        if (document.getElementById('equip').value == "weapon") 
        { 
            divsid.style.display="block"; 
         }; 
    }
   //-->
</script>
</body></html>
Öh wo hast du da jetzt was geändert?
Ich mein die Funktion wird ganz am Ende der Seite deklariert udn nirgendwo aufgerufen, wenn ich das richtig sehe, oder?

MfG,

Rum0

PS: Plz helft mir ;)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.867
Beiträge
1.539.636
Mitglieder
67.860
Neuestes Mitglied
Hawkness
Oben