Ich versuche, ein dynamisches Formular mit Spring-Formen zu erstellen. Im Grunde erhält das Formular einen Titel der Lernaktivität und dann gibt es die a-Schaltfläche darunter, die "Eine weitere Lernaktivität hinzufügen" enthält. Dies ermöglicht es dem Benutzer, eine weitere Lernaktivität hinzuzufügen. Ich möchte, dass er so viel hinzufügen kann, wie er möchte.Dynamische Formulare im Frühjahr
Ich habe das vorher nicht versucht, also offensichtlich habe ich Fehler mit der ersten Lösung gefunden, an die ich gedacht habe. Ich hatte wirklich das Gefühl, zu tun, was ich tat, wird einen Fehler generiert, sondern nur nach Hause fahre, was ich zu tun versuche, hier ist der Code:
<script language="javascript">
fields = 0;
function addInput() {
document.getElementById('text').innerHTML += "<form:input path='activity[fields++].activity'/><br />";
}
<div id="text">
<form:form commandName="course">
Learning Activity 1
<form:input path="activity[0].activity"/>
<input type="button" value="add activity" onclick="addInput()"/>
<br/><br/>
<input type="submit"/>
</form:form>
<br/><br/>
</div>
Ich habe versucht, dies zu tun, aber die Werte der generierten Formulare sind nicht an die Befehlsklasse gebunden. Nur die, die ich explizit im Spring-Formular gesetzt habe, ist zB im obigen Code gebunden: –
Jeune
"Ein Problem, das dir Probleme bereiten könnte: du hängst deine an neues Eingabefeld am Ende der äußeren div ("Text"), was bedeutet, dass es nicht innerhalb der Form-Tags ist. Das wird nicht funktionieren. " Ich adressiert dies bereits Ich habe die neuen Eingabefelder in einem anderen Div innerhalb der Form Tags angehängt, noch die angehängten Eingabefelder nicht binden. – Jeune
Können Sie ein Beispiel für Ihr angehängtes Eingabefeld angeben? Ich habe diesen Ansatz verwendet, um genau dies zu tun und es funktioniert. Ein Eingabefeld mit dem Namen "activity [1] .activity" sollte an das zweite Element in Ihrer Aktivitätsliste gebunden sein (vorausgesetzt, es hat ein Feld "activity") usw. –