无法删除在xPages中的djFilteringSelect dojo控件中输入的值

时间:2014-01-27 10:20:57

标签: json dojo controls xpages xpages-extlib

我使用djFilteringSelect控件在用户输入值时在下拉列表中显示值。 查找和类型头工作正常。用户键入一个字母,下拉列表允许用户选择一个值,然后在下拉字段中显示该值。

如果用户现在决定删除首先选择的值以使组合框为空并离开该字段,则列表中的第一个值现在会自动填入。

这样做的结果是,如果用户添加了一个值,则无法删除该值并将该框保留为emtpy。

我对control和dojo属性都使用required = false但它似乎没有帮助。我还尝试了一些其他的djFilteringSelect属性,如“自动完成”和“修剪”,但它不起作用

这是代码

<xe:djFilteringSelect id="test" type="select" store="jsondata" searchAttr="data" required="false" labelType="html" invalidMessage="Not valid">
        <xe:this.dojoAttributes>
            <xp:dojoAttribute name="required" value="false"></xp:dojoAttribute>
        </xe:this.dojoAttributes>
</xe:djFilteringSelect>

最初该字段不是必需字段,但如果用户输入了值,则需要该字段。

我的问题是,如果我之前添加了一个值,是否有办法阻止djFilteringSelect控件始终填充该字段

2 个答案:

答案 0 :(得分:1)

我发现有人通过在我的数据存储中创建一个空条目来解决另一个堆栈溢出主题。但我无法让这个工作

Dojo: Select of empty value for FilteringSelect while required=false

答案 1 :(得分:1)

我这么做了很多。现在我没有工作样本给你看(因为我转移到bootstrap - 并且必须通过手动添加select2控件来编写选择)但是这样的事情应该这样做......

我在我的选择顶部添加一个“空”值 - 这似乎无论我是使用组合框,djCombobox还是使用bootstrap中的select2组合框。我的标记通常如下:

<xp:comboBox id="inputLocationSelector" value="#{User.catchListType}" disableClientSideValidation="true">
    <xp:selectItem itemLabel="(none)" itemValue=""></xp:selectItem>
    <xp:selectItems>
        <xp:this.value><![CDATA[${Configuration.meta.listLocationTypeOptions}]]></xp:this.value>
    </xp:selectItems>
</xp:comboBox>

然后,您可以根据需要为“未选择”值指定“(无)”,“全部”或“”。

验证是另一回事,所以只指定“required = false”并不会给你“空”值。

/约翰