【问题标题】:How to get the "value" of a FilteringSelect <select> in dojo?如何在 dojo 中获取 FilteringSelect <select> 的“值”?
【发布时间】:2009-12-04 22:22:57
【问题描述】:

我正在使用 dijit.form.FilteringSelect 提供一种从

例如:
<select name="test" dojoType="dijit.form.FilteringSelect">
<option value="1">One</option>
<option value="2">Two</option>
</select>

如果选择了该选项,Dojo 将返回文字“one”,而不是该选项的值“1”。 “二”和“二”也是如此。

如果从这个元素中删除了dojo,则按预期返回值。

【问题讨论】:

  • “dojo 正在返回值”是什么意思。或者你张贴这个表格?如果是这样,如何通过普通的 HTTP 帖子或 dojo XHR 请求,或者您是否尝试通过 JS 使用 dojo.getValue 来读取值。需要更完整的代码集来提供帮助。
  • 它的行为与 mctom987 所说的完全一样。这可能是因为 Swigley 编辑了问题。

标签: javascript html forms dojo


【解决方案1】:

执行此操作的 dojo 方法是使用 dijit.byId('yourDijitId').attr()。

要得到你想要的值:

dijit.byId('yourDijitId').attr('value');

要获取过滤选择中显示的值:

dijit.byId('yourDijitId').attr('displayedValue');

编辑:attr() 在 1.5 中被弃用,at 1.5 and beyond, use get()

【讨论】:

  • attr 现在已弃用。您应该改用 get 。例如。 dijit.byId('yourDijitId').get('value');
【解决方案2】:

获取 dijit.form.FilteringSelect

的值
dijit.byId('yourId').get('value');

获取dijit.form.FilteringSelect

的displayValue
dijit.byId('yourId').get('displayedValue');

【讨论】:

    【解决方案3】:

    遇到了同样的问题并想出了这个解决方案。

    var optVal = dijit.byId("yourDijitId").item.value;
    

    FilteringsSelect 小部件将“显示值”放在displayValuevalue 属性中。我发现获取选项值的唯一方法是通过列出所选选项属性的item 属性。

    【讨论】:

      【解决方案4】:

      我发现道场创建了 2 个元素。一个使用名称,其中包含使用元素名称的值,另一个包含选项标签,它使用元素的 ID。由于我使用的是 document.getElementById(),因此返回了错误的值。使用名称中的值可提供正确的结果。

      【讨论】:

      • 是的,所以您需要使用 Swingley 声明的 dijit API。使用 document.getElementByid 或 jquery 会产生不同的结果。
      【解决方案5】:

      对于那些试图在 FilteringSelect 中查找 SELECTED OBJECT 的 Google 同事:

      dijit.byId("yourDijitId").item
      

      指的是选定的项目,以防您需要访问对象的其他属性。

      (向 Bitwize 提示使用 dijit.byId("yourDijitId").item.value 指向正确的方向)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-29
        • 2011-10-10
        • 2011-03-02
        • 1970-01-01
        相关资源
        最近更新 更多