为什么这个表单不会提交?
<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>
也许这是一个愚蠢的问题,但我已经看了好几个小时但仍然无法弄明白。 提前致谢
答案 0 :(得分:0)
我不确定你会遇到什么不会提交。我将您的代码移动到JS Bin(http://jsbin.com/iziwen/1/edit)并且工作正常:
如果您在服务器端遇到问题,我建议您将encType="multipart/form-data"
更改为enctype="application/x-www-form-urlencoded"
(或根本不使用它,因为它是默认值) - 您不需要{{1} },您没有发送文件(请参阅更多here)。
如果这样做无效,请指明不会更准确地提交。
编辑:我没有使用multipart/form-data
提交功能,我只是抓取表格数据并通过XHR将这些数据发送到我的网络服务,但我看看提交功能的工作原理和看来你需要一个dijit/form/Form
来使用提交功能。所以我改变了这一点:
一个。表单定义 - <iframe>
指向iframe ID:
target:"formSubmitIframe"
B中。添加了iframe:
<form
id="myForm"
data-dojo-id="myForm"
data-dojo-type="dijit/form/Form"
data-dojo-props="action:'Cart.php', method:'post', target:'formSubmitIframe'"
>
一切正常后,将<iframe name="formSubmitIframe" src="about:blank"></iframe>
添加到iframe以隐藏它。
在JS Bin中查看它:http://jsbin.com/iziwen/7/edit
N.B。:我不建议以这种方式提交表单。如果您不需要跨域或发送文件,只需通过style="display:none;"
获取表单数据,这样您就可以使用JSON格式化表单数据,然后通过var data = dijit.byId("myForm").get("value")
或dojo/xhr
发送它们(对于道场1.8 +)。
此外dojo/request
只需向其提供表单ID即可发送表单 - 这是一个很好的示例:http://livedocs.dojotoolkit.org/dojo/xhr