为什么此表单不能提交?
<div data-dojo-type="dijit/form/Form" id="myForm" data-dojo-id="myForm"
encType="multipart/form-data" action="Cart.php" method="post">
<input type="text" name="searchName"
data-dojo-type="dijit/form/TextBox"
data-dojo-props="trim:true, propercase:true" id="searchName" />
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="sl" id="radioOne" value="full"/> <label for="radioOne">Full</label>
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="sl" id="radioTwo" value="short"/> <label for="radioTwo">Short</label>
Data Select
<select name="select1" data-dojo-type="dijit/form/Select">
<option value="2">Data1</option>
<option value="1">Data2</option>
</select>
<button data-dojo-type="dijit/form/Button" type="submit" name="submitButton" value="Submit">Submit</button>
</div>还有一些javascript:
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.8/dojo/dojo.js" data-dojo-config="parseOnLoad:true"></script>
<script type="text/javascript">
dojo.require("dijit.form.Form");
dojo.require("dijit.form.Button");
dojo.require("dijit.form.TextBox");
dojo.require("dijit/layout/AccordionContainer");
dojo.require("dijit/layout/BorderContainer");
dojo.require("dijit/layout/ContentPane");
</script>也许这是一个愚蠢的问题,但我已经看了好几个小时了,还是想不出来。提前感谢
发布于 2012-08-30 17:23:28
我不知道你遇到什么不会提交。我把你的代码移到了JS (http://jsbin.com/iziwen/1/edit)中,它工作得很好:

如果您在服务器端遇到问题,我建议您将encType="multipart/form-data"更改为enctype="application/x-www-form-urlencoded" (或者根本不使用它,因为它是默认值)-您不需要multipart/form-data,您不会发送文件(请参阅更多here)。
如果这不起作用,请指定不会更精确地提交。
编辑:我不使用dijit/form/Form提交功能,我只是抓取表单数据并通过XHR发送到我的web服务,但我看过提交功能是如何工作的,所以似乎你需要一个<iframe>来使用提交功能。所以这就是我所改变的:
A.表单定义- target:"formSubmitIframe"指向iframe id:
<form
id="myForm"
data-dojo-id="myForm"
data-dojo-type="dijit/form/Form"
data-dojo-props="action:'Cart.php', method:'post', target:'formSubmitIframe'"
>B.添加了iframe:
<iframe name="formSubmitIframe" src="about:blank"></iframe>一旦一切正常,你可以将style="display:none;"添加到iframe来隐藏它。
在JS Bin中查看它的实际效果:http://jsbin.com/iziwen/7/edit
注意:我不建议用这种方式提交表格。如果您不需要跨域或发送文件,只需通过var data = dijit.byId("myForm").get("value")获取表单数据,因此您将拥有JSON格式的表单数据,然后通过dojo/xhr或dojo/request (用于dojo 1.8+)发送它们。
此外,只需向dojo/xhr提供表单id,它就能够发送表单--这里有一个很好的示例:http://livedocs.dojotoolkit.org/dojo/xhr
https://stackoverflow.com/questions/12192599
复制相似问题