Ich versuche, ein paar Dinge mit Zend Framework & Dojo Toolkit zu tun, und jede Hilfe wäre willkommen. Hier ist das Problem:DOJO: Wie initiieren Sie Formularelemente nach Ajax-Aufruf?
Ich habe ein Formular, das mit der Zend Framework Form Klasse gerendert wird, die eine Ajax Radio Button-Auswahl hat. Wenn Sie auf einen dieser Optionsfelder klicken, wird eine Ajax-Anforderung an einen anderen Controller gesendet, der kein Layout hat, sondern nur ein gerendertes Formular. Die Ajax-Anfrage füllt dann ein Div mit den neuen Formularoptionen.
Problem ist, wenn ich die innerHTML des div durch die Ajax-Antwort ersetzen, erben alle Formulareingaben und -Elemente nicht die gleiche Dojo Styling und Formularüberprüfung.
Ich frage mich, ob es eine Möglichkeit gibt, Formularelemente nach einem Ajax-Aufruf zu reinitialisieren?
Ich habe versucht, den beigefügten Code zu verwenden, den ich für dieses Beispiel gefunden und leicht modifiziert habe, aber es hat nicht funktioniert. Wenn ich die Zeile dojo.parser.parse(div);
verwende, ändert sich nichts (rg_adress im Beispiel ist die ID eines Formularelements, das auf dem DOM platziert wird). Hier ist die console.log von rg_address:
<input type="text" dojotype="dijit.form.ValidationTextBox"
required="1" invalidmessage="The first name of the recipient"
value="" name="rg_address" id="rg_address" class="textbox"/>
onClick='
dojo.xhrGet({
url: "/transfer/newrecipient/",
handleAs: "text",
timeout: 10000, // Time in milliseconds
// The LOAD function will be called on a successful response.
load: function(response, ioArgs) {
$("#newRecipient").html(response);
$("#newPayMethod").html("");
$("#newPayDetail").html("");
var div = dojo.byId("rg_address");
console.log(div);
dojo.parser.parse(div);
return response;
},
// The ERROR function will be called in an error case.
error: function(response, ioArgs) {
$("#newRecipient").html("Error loading registration form");
$("#newPayMethod").html("");
$("#newPayDetail").html("");
return response;
}
});'
Danke, Dural