2017-06-27 15 views
0

Ich habe viel mehr Code, so dass dies nicht sehr sauber aussehen. Ich versuche, etwas Text aus der E-Mail-Eingabe zu entnehmen und dort einzutragen, wo sich das P-Tag befindet. Es scheint nicht zu funktionieren. Kann jemand helfen?Abrufen von Text aus einer Formulareingabe. Javascript

<form class="modal-content" action="#" style="margin-top:10%;"> 
    <div class="container"> 
    <label><b>Email</b></label> 
    <input id="emailIn" type="email" placeholder=" [email protected]" name="email" required> 
    <br/><br/> 
    <div class="clearfix"> 
    <button type="submit" onclick="myFunction()" class="signupbtn">Sign Up</button> 
    </div> 
    </div> 
</form> 

<p id="demo"></p> 

<script> 
function myFunction() { 
    document.getElementById("emailIn").value 
    document.getElementById("demo").innerHTML = text; 
} 
</script> 
+0

var text = Dokument .getElementById ("emailIn"). – tech2017

+0

Wow! Ich hasse diese Zettel. Danke allen! Der "var text" war der Schuldige. –

Antwort

1

Sie nicht erklären text oder auf den Wert des Eingangs gesetzt

function myFunction() { 
    var text = document.getElementById("emailIn").value 
    document.getElementById("demo").innerHTML = text; 
} 
1

Das Problem ist, dass Sie nur mit text die Daten zu erhalten versuchen, (was nicht überall erklärt wird) statt den Wert des Eingangs.

Sie die Linie gehabt haben könnte:

var text = document.getElementById("emailIn").value; 

Und dann würde der Code gearbeitet haben, aber da Sie werden nur die Informationen zu verwenden, nur ein einziges Mal, eine Variable für die Speicherung der Daten machen doesn Es macht keinen Sinn. Stattdessen können Sie einfach den Wert abrufen und alles in einer Zeile zuweisen.

Verwenden Sie auch keine Inline-HTML-Ereignisattribute (onclick). Bewahren Sie Ihr gesamtes JavaScript vollständig getrennt von Ihrem HTML-Code auf und verwenden Sie moderne Standards zum Einrichten von Event-Handlern. Here's warum.

Schließlich bewirkt .innerHTML, dass die angegebene Datenkette vom HTML-Parser analysiert wird. Da der Wert, mit dem Sie arbeiten, keinen HTML-Code enthält, verwenden Sie besser .textContent, wodurch die Zeichenfolge nicht als HTML verarbeitet wird. Es ist ein bisschen besser auf die Leistung, um die entsprechende zu verwenden.

// Get reference to the submit button 
 
var btn = document.querySelector(".signupbtn"); 
 

 
// Modern DOM standard for setting up event listeners 
 
btn.addEventListener("click", myFunction); 
 

 
function myFunction() { 
 
    // Use textContent instead of innerHTML when there won't be any HTML 
 
    document.getElementById("demo").textContent = document.getElementById("emailIn").value; 
 
}
<form class="modal-content" action="#" style="margin-top:10%;"> 
 
    <div class="container"> 
 
    <label><b>Email</b></label> 
 
    <input id="emailIn" type="email" placeholder=" [email protected]" name="email" required> 
 
    <br/><br/> 
 
    <div class="clearfix"> 
 
    <button type="submit" class="signupbtn">Sign Up</button> 
 
    </div> 
 
    </div> 
 
</form> 
 

 
<p id="demo"></p>

-2

Verwendung JQuery hierfür:

<script> 
function myFunction() { 
    var emailIn = $("emailIn").val(); 
    var demo = $("demo").innerHTML; 
    demo = text; 
} 
</script> 

Ich weiß nur, Dies.

+0

Die Frage wurde nicht mit JQuery getaggt. –

+0

Ich bin neu auf dieser Seite: D –

+0

Gute Antworten adressieren die Frage, die im Kontext der für die Frage angegebenen Tags gestellt wird. Sie enthalten auch Erklärungen, was das Problem im ursprünglichen Code war und warum/wie die Antwort sie löst. –

0

Sie hatten es fast! nur definieren Text in Ihrer Funktion

function myFunction() { 
 
    text=document.getElementById("emailIn").value 
 
    document.getElementById("demo").innerHTML = text; 
 
}
<form class="modal-content" action="#" style="margin-top:10%;"> 
 
    <div class="container"> 
 
    <label><b>Email</b></label> 
 
    <input id="emailIn" type="email" placeholder=" [email protected]" name="email" required> 
 
    <br/><br/> 
 
    <div class="clearfix"> 
 
    <button type="submit" onclick="myFunction()" class="signupbtn">Sign Up</button> 
 
    </div> 
 
    </div> 
 
</form> 
 

 
<p id="demo">xxxx</p> 
 

 

+0

Ihr Code bewirkt, dass 'text' eine globale Variable wird! Autsch! –

2

kleine Änderungen im Code tun,

<script> 
    function myFunction() { 
     document.getElementById("demo").value = document.getElementById("emailIn").value; 
    } 
+0

Ihr Code bewirkt, dass 'text' eine globale Variable wird! Autsch! –

+0

Seine definierte innere Funktion, wie wird es dann global? –

+0

Es ist nicht in der Funktion definiert. 'var' oder' let' deklarieren Variablen.Sie verweisen nur auf 'text' und da es nirgendwo anders formell deklariert wurde, wird es global. –

0

ich Dinge wie diese thusly tun:

<form class="modal-content" action="#" style="margin-top:10%;"> 
<div class="container"> 
    <label><b>Email</b></label> 
    <input id="emailIn" type="email" placeholder=" [email protected]" name="email" required> 
    <br/><br/> 
    <div class="clearfix"> 
    <button type="submit" class="signupbtn" id="button">Sign Up</button> 
    </div> 
    </div> 
</form> 

<p id="demo"></p> 

<script> 
    var button = document.getElementById('button'); 
    var input = document.getElementById('emailIn'); 

    button.addEventListener('click', function(){ 
    var addToP = input.value; 
    document.getElementById('demo').innerHTML = demo.innerHTML + '<p>' + addToP + '</p>'; 
    input.value = ''; 
    }) 
</script> 
+0

Das ist großartig, dass Sie so Dinge tun, aber Sie haben nicht erklärt, was das Problem war oder warum Ihr Code das Problem löst. Das sollte eine gute Antwort sein. –

Verwandte Themen