私はZend Framework & Dojo Toolkitを使用していくつかのことをしようとしています。ここに問題があります:DOJO:ajax呼び出しの後でフォーム要素をどのように再初期化しますか?
私は、Ajaxラジオボタンの選択肢を持つZend Frameworkフォームクラスでレンダリングされるフォームを持っています。これらのラジオボタンの1つをクリックすると、Ajaxリクエストが別のコントローラに送信されます。コントローラにはレイアウトがなく、レンダリングされたフォームだけがあります。 ajaxリクエストはdivを新しいフォームオプションで設定します。
問題は、divのinnerHTMLをajaxレスポンスに置き換えると、すべてのフォーム入力と要素が同じDojoスタイリングとフォーム検証を継承しないということです。
ajax呼び出し後にフォーム要素を再初期化する方法があるのだろうかと思っていましたか?
私はこのコードで見つけて修正したコードを使用しようとしましたが、このコードは機能しませんでした。 dojo.parser.parse(div);
行を使用しても何も変更されません(この例のrg_adressはDOM上に配置されるフォーム要素のIDです)。ここrg_addressのにconsole.logは次のとおりです。
<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;
}
});'
おかげで、 硬膜