Ich versuche, diese einfache Sache zu tun, aber ich muss vermeiden, irgendetwas außer html, css und plain javaScript zu verwenden.Werte aus Formular in modal holen und mit javaScript in die Tabellenzeile setzen
Ich habe Modal mit Name Textfeld und einem Dropdown-Menü. Auf der Hauptseite habe ich eine HTML-Tabelle mit 3 Spalten: Erstellungsdatum, Name und Tests.
Wenn ich auf den Button Neu hinzufügen am oberen Rand der Seite klicke, erscheint Modal und ich möchte Werte in Formularsteuerelemente eingeben können, auf Speichern klicken und diese Werte in meiner Tabelle anzeigen.
Ich weiß, wie dies mit jQuery oder anderen moderneren Technologien zu tun, aber es ist nicht erlaubt. Also brauche ich Hilfe bei der Rückkehr zu den Grundlagen.
Hier ist mein Code:
<html>
<head>
<title>Battery Test App</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<button id="btnAddNew">Add new</button>
<br>
<br>
<table border="1">
<tr>
<th>Date Created</th>
<th>Name</th>
<th>Tests</th>
</tr>
</table>
<div id="modalAddNewTest" class="modal">
<div class="modal-content">
<span class="close">x</span>
<form name="formTestInfo" method="post">
Name:<br>
<input type="text" name="tbName">
<p id="nameVal"></p>
<br>
<br>
Test:<br>
<select>
<option value="belbin">Belbin</option>
<option value="raven">Raven</option>
<option value="ppa">PPA</option>
<option value="ppaPlus">PPA+</option>
<option value="basicKnowledge">Basic Knowledge</option>
<option value="pct">PCT</option>
</select>
<br>
<br>
<button id="btnCancel">Cancel</button>
<button id="btnSave" onclick="validateForm()">Save</button>
</form>
</div>
</div>
<script>
var nameValidation;
var modal = document.getElementById('modalAddNewTest');
var btn = document.getElementById("btnAddNew");
var span = document.getElementsByClassName("close")[0];
btn.onclick = function() {
modal.style.display = "block";
}
span.onclick = function() {
modal.style.display = "none";
}
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
function validateForm() {
var x = document.forms["formTestInfo"]["tbName"].value;
if (x == null || x == "") {
nameValidation = "Name must be filled out";
document.getElementById("nameVal").innerHTML = nameValidation;
return false;
}
}
</script>
</body>
</html>
Ja hatte ich ähnliche Idee, aber das Problem war, dass, wenn ich auf Hinzufügen Schaltfläche nichts zur Tabelle hinzugefügt wird. Modal verschwindet und wenn ich debugge, sehe ich, dass ich keine Ausnahmen habe, alle Werte korrekt sind, Debug-Pass-Erstellung neuer Zeile und Werte hinzufügen, aber auf der Seite nichts ... @ bhanu.cs –
Ihre Seite bekommt eine volle Seite Postback Klicken Sie auf Hinzufügen Schaltfläche? –
Nun, ich habe es nicht definiert ... Nur wenn es so standardmäßig ist. Ich habe versucht, Return false hinzuzufügen; aber es hat nicht geholfen ... @ bhanu.cs –