Can't remove the value entered in the djFilteringSelect dojo control in xPages

我的梦境 提交于 2020-01-05 04:16:15

问题


I am using the djFilteringSelect control to show values in a dropdown as user type a value. The lookup and typehead is working fine. The user type a letter and the dropdown allow the user to select a value which is then displayed in the dropdown field.

If the user now decide to remove the value first selected so that the combobox is empty and leave the field, then the first value in the list is now automatically filled in.

The consequence of this is that if the user have added a value there is no way to remove the value and leave the box emtpy.

I am using required=false for both the control and the dojo attribute but it does not seem to help. There are also a few other djFilteringSelect attributes I have tried like "Autocomplete" and "trim" but it does not work

Here is the code

<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>

Initally the field is not required, but if the user have entered a value it is required.

My question is if there a way to prevent the djFilteringSelect control to always populate the field if I have previously added a value


回答1:


I found someone who solved this in another stack overflow topic, by creating an empty entry in my data store. but I could not get this to work

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




回答2:


I do this quite a lot. Right now I don't have a working sample to show you (since I moved to bootstrap - and have to code the selects by manually adding select2 controls) but something like this should do it...

I add an "empty" value at the top of my select - and that seems to work no matter whether I am using a combobox, djCombobox or combobox with select2 from bootstrap. My markup typically looks like:

<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>

Then you could specify "(none)", "All" or " " for the "not-selected" value depending on your needs.

Validation is a different thing so just specifying "required=false" does not give you the "empty" value.

/John



来源:https://stackoverflow.com/questions/21378256/cant-remove-the-value-entered-in-the-djfilteringselect-dojo-control-in-xpages

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!