Ich bin wirklich verwirrt darüber, wie man das macht.HTML/Javascript-Formular - Wie erstellt man ein neues div-Element, das sich überlagert?
Was ich versuche zu tun ist, haben ein Formular in HTML (nicht <form>
), nur eine Reihe von <input>
Tags mit einer <button>
.
Grundsätzlich im javascript
Code, gibt es ein Ereignis, das die Zuhörer MakeCard()
Methode aktiviert wird, wenn die <button>
gedrückt wird.
Die MakeCard()
Methode soll dann das Formular (im HTML-Body) durch eine <div>
ersetzen, die ihre eigenen zufälligen Zeug hat.
Wie kann ich dieses System arbeiten lassen? Bitte keine JQuery
und andere solche Bibliotheken. Ich darf nur DOM
verwenden.
Dies ist der Code, den ich bisher habe:
<html>
<head>
<title>Home</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" href="css/style.css"/>
<script>
window.addEventListener("load", function(){
var nameOfRecipient = document.getElementById("nameOfRecipient");
var colorInfo = document.getElementById("colorInformation");
var fontSize = document.getElementById("fontSize");
var resultNameOfRecipient = document.getElementById("resultNameOfRecipient");
var resultColorInfo = document.getElementById("resultColorInformation");
var resultFontSize = document.getElementById("resultFontSize");
function MakeCard(){
// Make the card
// Show the results
ShowResults();
}
function ShowResults(){
// Show the user choices
resultNameOfRecipient.innerHTML = nameOfRecipient.value;
resultColorInfo.innerHTML = colorInfo.value;
resultFontSize.innerHTML = fontSize.value;
}
document.getElementById("submitButton").addEventListener("click", MakeCard);
});
</script>
</head>
<body>
<div id="headerContainer">
Welcome to the Card Maker!
</div>
<div id="formContainer">
<p>Name of recipient<input type="text" id="nameOfRecipient"></p>
<p>Color Information<input type="text" id="colorInformation"></p>
<p>Font Size<input type="number" id="fontSize"></p>
<input type="button" id="submitButton" value="Make Card!">
</div>
<div id="resultContainer">
<p id="resultNameOfRecipient"></p>
<p id="resultColorInformation"></p>
<p id="resultFontSize"></p>
</div>
</body>
Bitte ignorieren Sie den LAST DIV MIT ID="resultContainer"
und ignorieren alle Variablen, die die result
vor haben. Das Zeug ist ein anderes Extra.
Es wäre erstaunlich, wenn ich nur wissen könnte, wie man ein völlig neues div, das das div mit ID="formContainer"
ERSETZT, macht.
Mit zufälligen Sachen meinst du wie eine Dankeschön-Nachricht in ihrer einfachsten Form? Wenn das der Fall ist [hier ist eine jsFiddle-Demo] (https://jsfiddle.net/damo_s/dd4x8qdt/), die zeigt, wie Sie 1. ein neues Element in js erstellen und 2. das vorhandene div durch 'id =" formContainer ersetzen würden "mit einem anderen Div mit der gleichen ID. Ich habe den Formularbehälter in einen anderen Container eingepackt, der mangels eines besseren Namens formContainerContainer genannt wird, obwohl das vermieden werden kann. –