【发布时间】:2009-07-24 01:22:31
【问题描述】:
我正在尝试使用 Zend Framework 和 Dojo Toolkit 做一些事情,如果有任何帮助,我将不胜感激。问题来了:
我有一个使用 Zend Framework 表单类呈现的表单,它有一个 ajax 单选按钮选择。单击其中一个单选按钮将向另一个控制器发送 ajax 请求,该控制器没有布局,只是一个呈现的表单。然后,ajax 请求将使用新的表单选项填充一个 div。
问题是,当我用 ajax 响应替换 div 的 innerHTML 时,所有表单输入和元素都没有继承相同的 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;
}
});'
谢谢, 硬脑膜
【问题讨论】:
标签: ajax zend-framework dojo init