我在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">
在提交之前我应该做些什么吗?
答案 0 :(得分:2)
您只需要为小部件添加名称,即
<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提交表单,那么您将获得评级小部件 - 如果您有名称。但是如果你使用原生表格提交,那么你就不会。
我在hhttp://telliott.net/dojoExamples/dojo-ratingInFormExample.html上创建了一个测试用例。您可以通过快速迭代getValues()返回的值并自己构建查询字符串,使其适用于非XHR表单提交。不理想。我怀疑应该更新评级的模板,将name属性放在输入节点而不是顶级节点上。
答案 1 :(得分:0)
愚蠢的问题:
你添加了dojo.require(“dojox.form.Rating”);你的代码?
希望它对你有所帮助。
//丹尼尔