dojox.form.Rating不会出现在后期数据中

时间:2011-02-15 11:59:14

标签: javascript dojo

我在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">

在提交之前我应该​​做些什么吗?

2 个答案:

答案 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”);你的代码?

希望它对你有所帮助。

//丹尼尔