我在 Dojo 表单中包含了一个 Dojo 星级评级小部件 (dojox.form.Rating),但是在提交时它没有出现。
<div dojoType="dojox.form.Rating" numStars="5" id="field_3177" value="3"></div>
文档没有提到添加名称属性,但即使我添加一个也无济于事。
<div dojoType="dojox.form.Rating" name="field_3177" numStars="5" id="field_3177" value="3"></div>
检查 Firebug 中呈现的 HTML,隐藏的输入字段似乎没有名称属性 - 这可以解释为什么它没有出现在 POSTed 数据中。
<input type="hidden" dojoattachpoint="focusNode" value="3" id="field_3177" tabindex="0">
在提交之前我应该做些什么吗?
最佳答案
您只需要为小部件添加一个名称,即
<div dojoType="dojox.form.Rating" numStars="5" id="field_3177" name="field_3177" value="3"></div>
这对 Dojo 来说没什么特别的。所有输入元素都必须有一个名称才能提交回服务器,请参阅 http://www.w3schools.com/tags/att_input_name.asp .
更新: 抱歉,没有看到您已经尝试添加名称参数。我认为这是表单或(更有可能)评级小部件中的错误。如果您使用 dijit.form.Form.getValues() 通过 XHR 提交您的表单,那么您将获得包含评级的小部件 - 如果您有姓名。但是,如果您使用 native 表单提交,则不会。
我在 hhttp://telliott.net/dojoExamples/dojo-ratingInFormExample.html 创建了一个测试用例。您可以通过快速遍历 getValues() 返回的值并自己构建查询字符串,使其适用于非 XHR 表单提交。不理想。我怀疑评级模板应该更新以将名称属性放在输入节点而不是顶级节点上。
关于javascript - dojox.form.Rating 未出现在发布数据中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5003351/