各位好!在使用DOJO时遇到如下问题:
用xhrPost提交一个普通表单可以正常运行。代码片段如下:<form id="categoryForm" action="addCategory">
<s:hidden id="id" name="id"/>
<label for="name">Name</label><input dojotype="dijit.form.TextBox" id="name" type="input" name="category.name"/>
<input type="submit" id="button" dojotype="dijit.form.Button" label="Add" />
</form>
dojo.connect(button, "onClick", function(event){
event.preventDefault();
event.stopPropagation();
var xhrArgs = {
form: dojo.byId("categoryForm"),
preventCache:true,
handleAs: "json",
load: function(data){ },
error: function(error){
alert(error.message);
}
}
var deferred = dojo.xhrPost(xhrArgs);
不过,当在<form>标签中加入dojotype="dijit.form.Form"属性以后,就出错了。<form id="categoryForm" action="addCategory" dojotype="dijit.form.Form">
<s:hidden id="id" name="id"/>
<label for="name">Name</label><input dojotype="dijit.form.TextBox" id="name" type="input" name="category.name"/>
<input type="submit" id="button" dojotype="dijit.form.Button" label="Add" />
</form>
问题是,怎么用Ajax提交一个dijit.form.Form。谢谢!
用xhrPost提交一个普通表单可以正常运行。代码片段如下:<form id="categoryForm" action="addCategory">
<s:hidden id="id" name="id"/>
<label for="name">Name</label><input dojotype="dijit.form.TextBox" id="name" type="input" name="category.name"/>
<input type="submit" id="button" dojotype="dijit.form.Button" label="Add" />
</form>
dojo.connect(button, "onClick", function(event){
event.preventDefault();
event.stopPropagation();
var xhrArgs = {
form: dojo.byId("categoryForm"),
preventCache:true,
handleAs: "json",
load: function(data){ },
error: function(error){
alert(error.message);
}
}
var deferred = dojo.xhrPost(xhrArgs);
不过,当在<form>标签中加入dojotype="dijit.form.Form"属性以后,就出错了。<form id="categoryForm" action="addCategory" dojotype="dijit.form.Form">
<s:hidden id="id" name="id"/>
<label for="name">Name</label><input dojotype="dijit.form.TextBox" id="name" type="input" name="category.name"/>
<input type="submit" id="button" dojotype="dijit.form.Button" label="Add" />
</form>
问题是,怎么用Ajax提交一个dijit.form.Form。谢谢!
....
var xhrArgs = {
form: dijit.byId("categoryForm").domNode,
preventCache:true,
.....
您说的这种方法我也曾经试过,但也会出错。
我用的是DOJO的1.4.0,请问您用的是什么版本?
另外,以上这个方法,您确实在实际使用中证明过是可行的吗?
请赐教!
感觉比较麻烦