Zend Framework と Dojo Toolkit を使用していくつかのことをしようとしています。問題は次のとおりです。
ajax ラジオ ボタンを選択できる Zend Framework フォーム クラスでレンダリングされるフォームがあります。これらのラジオ ボタンのいずれかをクリックすると、別のコントローラーに ajax リクエストが送信されます。このコントローラーには、レイアウトがなく、レンダリングされたフォームのみが送信されます。ajax リクエストは、div に新しいフォーム オプションを設定します。
問題は、div の innerHTML を ajax 応答に置き換えると、すべてのフォーム入力と要素が同じ Dojo スタイルとフォーム検証を継承しないことです。
ajax 呼び出しの後にフォーム要素を再開する方法があるかどうか疑問に思っていましたか?
添付のコードを見つけてこの例用に少し変更して使用しようとしましたが、うまくいきませんでした。この行を使用してdojo.parser.parse( div );
も何も変わりません (例の rg_address は、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;
}
});'
ありがとう、デュラル