0

为什么这个表格不会提交?

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

也许这是一个愚蠢的问题,但我已经看了几个小时,仍然无法弄清楚。提前致谢

4

1 回答 1

0

我不确定你遇到什么不会提交。我将您的代码移到 JS Bin ( http://jsbin.com/iziwen/1/edit ) 中,它工作正常:

在此处输入图像描述

如果您在服务器端遇到问题,我建议您更改encType="multipart/form-data"enctype="application/x-www-form-urlencoded"(或根本不使用它,因为它是默认值)-您不需要multipart/form-data,您没有发送文件(请参阅此处的更多信息)。

如果这没有帮助,请指定不会更准确地提交。

编辑:我不使用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/xhror发送它们dojo/request(对于 dojo 1.8+)。

dojo/xhr可以通过提供表单 ID 来发送表单 - 这是一个很好的例子: http: //livedocs.dojotoolkit.org/dojo/xhr

于 2012-08-30T09:23:28.090 回答