2017-03-12 3 views
1

Hallo Ich versuche, eine einfache Tierkreis-Webseite, die die Antwort von einem Array mit einer Funktion, die eine for-Schleife und eine if-Anweisung hat, greifen, aber die Antwort, wenn ich auf die Schaltfläche weiterhin nur klicken blinken und verschwinden. Wie behalte ich die Antwort auf der Seite? Hier ist der HTML:Funktionsaufrufe, aber Element verschwindet

<div class="header"><h1 class="zodiactitle">Learn your Life's Mysteries w/ the </br>ZODIAC</h1></div> 
<form> 
    <input id="zodiac" placeholder=" ENTER YOUR ZODIAC"> 
    <span class="click"><button class="button" onclick="getZodiac()">Click to find out more</button></span> 
</form> 

<div class="details"> 
<h3 id="birthdate"></h3> 
<h3 id="zodiacsign"></h3> 
</div> 

Hier ist die Funktion:

function getZodiac(){ 
    var sign = document.getElementById("zodiac").value; 

    for(i = 0; i < zodiacSigns.length; i++){ 
    //if statement to match correct input to correct zodiac 
    if(sign == zodiacSigns[i].sign){ 
    document.getElementById("birthdate").innerHTML = zodiacSigns[i].birthdate; 
    document.getElementById("zodiacsign").innerHTML = zodiacSigns[i].zodiac; 
    return; 

    } 
    } 
} 
+0

Können Sie Ihren HTML-Code posten? Zumindest die Elemente "Geburtsdatum" und "Zodiacsign" bitte. – Psi

+0

Wo wird 'getZodiac()' aufgerufen? Sind eine ''- und Submit-Schaltfläche beteiligt? Wenn dies der Fall ist, navigiert das Formular möglicherweise zu seiner "Aktion" oder aktualisiert zumindest die aktuelle Seite. [Wie kann verhindert werden, dass ein Formular eingereicht wird?] (Https://stackoverflow.com/questions/3350247/how-to-prevent-form-from-being-submitted) –

+0

Ist das Python? Wo sind Semikolons! – mehulmpt

Antwort

1

Hey, ich denke, das Problem, dass, wenn Sie auf die Schaltfläche klicken, wird Ihre Form und blinkt Ihre Seite vorgelegt. Sie können Event.preventDefault() und Event.stopPropagation() hinzufügen, um es zu beheben. Ich machte eine demo für mehr Klarheit.

function getZodiac(e) { 
    e.preventDefault(); 
    e.stopPropagation(); 

    // the rest of your logic 
} 
+0

Es funktioniert für Ihren Code, aber nicht meins. Ich habe es hinzugefügt und dennoch blinkt die Funktion nur die Antwort, anstatt sie zu behalten. –

+0

Haben Sie das 'e' als Parameter der Funktion hinzugefügt? – dawchihliou

+0

Können Sie versuchen, Ereignis-Listener so in der Demo hinzuzufügen und 'onClick =" getZodiac() "' in Ihrem HTML-Code mitzunehmen. – dawchihliou

Verwandte Themen