当我使用 发布表单时dojo.xhrPost
,除了我的 dojox.CheckedMultiSelect 的值之外,我会发布表单中的所有字段,无论选择了哪些选项。
我的 CheckedMultiSelect 的声明:
<div dojoType="dojo.data.ItemFileReadStore" jsId="processTypeList" url="json/processtypelist.json.php"></div>
<label for="processTypeSelect">Process Types</label>
<select dojoType="dojox.form.CheckedMultiSelect" name="processTypeSelect" id="processTypeSelect" multiple="true" style="height:166px;" store="processTypeList"></select>
这是我的 xhrPost:
<button dojoType="dojox.form.BusyButton" id="logSearchSubmit" busyLabel="Searching..." timeout="5"
onclick="dojo.xhrPost({
url: 'handlers/logsearch.php',
form: dojo.byId('formSearch'),
handleAs: 'json'
});">Search</button>
这是我发布的内容:
endDate 2009-12-15
postAction search
processSelect
searchAttribute none
searchAttributeValue
startDate 2009-12-15
尽管作为我的表单一部分的 dijit 控件的所有值都已发布,但为什么不发布 dojox 控件值的任何原因?该控件位于其他值被发布的控件之间,所以我知道它在表单中。
我刚刚添加了另一个按钮来执行console.log(formSearch.getValues())
而不是 xhrPost,并且我将控件的值记录到控制台中。所以很明显dojo意识到了这一点,但是当我这样做时,我console.log(dojo.formToJson("formSearch"))
再次获得了除dojox控件之外的所有表单数据。