Javascript 为什么这个dijit.form不提交?

Javascript 为什么这个dijit.form不提交?,javascript,forms,dojo,Javascript,Forms,Dojo,为什么这个表格不提交 <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

为什么这个表格不提交

<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>

满满的
短
数据选择
数据1
数据2
提交
还有一些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>

require(“dijit.form.form”);
require(“dijit.form.Button”);
require(“dijit.form.TextBox”);
dojo.require(“dijit/layout/acordioncontainer”);
require(“dijit/layout/BorderContainer”);
require(“dijit/layout/ContentPane”);
也许这是个愚蠢的问题,但我已经研究了好几个小时了,还是想不出来。
提前谢谢

我不确定你的会面地点,我不会提交。我将您的代码移到了JS Bin()中,效果很好:

如果您在服务器端遇到问题,我建议您将
encType=“multipart/form data”
更改为
encType=“application/x-www-form-urlencoded”
(或者根本不使用它,因为它是默认值)-您不需要
多部分/表单数据
,您不发送文件(请参阅更多)

如果这样做没有帮助,请详细说明我们不会更准确地提交

编辑:我没有使用
dijit/form/form
提交功能,我只是抓取表单数据并通过XHR将其发送到我的web服务,但我了解了提交功能的工作原理,似乎您需要一个
来使用提交功能。这就是我所改变的:

A.表单定义-
目标:“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中查看它的实际操作:

N.B.:我不建议以这种方式提交表格。如果您不需要跨域或发送文件,只需通过
var data=dijit.byId(“myForm”).get(“value”)
获取表单数据,这样您就可以获得JSON格式的表单数据,然后通过
dojo/xhr
dojo/request
(对于dojo 1.8+)向上发送它们


另外,
dojo/xhr
只需向表单提供一个表单id就可以发送表单-这里有一个很好的例子:

哦,对不起,我说的“不会提交”是指它不会跳转到操作(cart.php)并且不知道为什么。我是DOJO的新手,也许我在javascript部分需要一些额外的东西?以这种方式提交表单似乎不是最好的选择。我编辑了我的答案以提供替代方案。希望这会有帮助。