在XPages Mobile控件中我遇到了Typeahead问题。实际上我认为最近的行为发生了变化 - 可能是Ext的最后一次更新。图书馆,但我不确定。那是我们注意到这种变化的方式。一直按照需要工作。
以下是2个截图。第一个是正常的XPage,第二个是Mobile Controls。
注意用户如何开始在第一个中输入“D”而没有“自动完成”。但是在第二个屏幕截图中,用户键入了一个“D”,它立即添加到第一个值中,在这种情况下以“O”开头。它取代了用户输入的“D”。 (显示“O”开头的记录正在按设计工作,所以请忽略它。)
问题是我不希望发生自动完成。我希望移动控件中的第一个屏幕截图的行为。所以用户可以继续输入,它将继续过滤列表而不会覆盖用户输入的内容。
我很确定它曾经这样做,我不知道发生了什么变化。代码本身没有改变 - 我知道。
我试图将自动完成和自动更正设置为“关闭”而没有任何运气。我不确定它们的区别是什么,或者它们是否真正发挥作用。
如何让字段不自动填充Mobile Controls?
任何建议都将不胜感激。我应该注意到这是私下将在iPad上使用。所以它是Mobile Safari浏览器。
谢谢!
以下是此基本代码:
<xp:inputText id="inputJobCode" value="#{viewScope.selectedJob}"
styleClass="target span9">
<xp:this.attrs>
<xp:attr name="placeholder" value="Job Code" />
<xp:attr name="autocorrect" value="off" />
<xp:attr name="autocomplete" value="off" />
</xp:this.attrs>
<xp:this.dojoAttributes>
<xp:dojoAttribute name="autocorrect" value="off" />
<xp:dojoAttribute name="autocomplete" value="off" />
</xp:this.dojoAttributes>
<xp:typeAhead mode="partial" minChars="1" valueMarkup="true"
var="searchValue" valueList="#{javascript:return com.companyname.datahub.TypeAhead.jobTypeAhead(searchValue);}">
</xp:typeAhead>
<xp:eventHandler event="onchange" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:var key:String = viewScope.get("selectedJob");
getComponent("inputJobCode").setValue("");
//JobData.load(key);
}]]></xp:this.action>
</xp:eventHandler>
</xp:inputText>
以下是移动控制页面输出HTML的内容:
<input type="text" id="view:_id1:checkOutFacilityID_content:_id4:inputText5"
name="view:_id1:checkOutFacilityID_content:_id4:inputText5" autocomplete="off"
class="mblTextBox target" placeholder="Job Code" autocorrect="off"
dojotype="extlib.dijit.mobile.TypeAheadCombo"
store="view__id1_checkOutFacilityID_content__id4__id9" data-dojo-
props="list:'view__id1_checkOutFacilityID_content__id4__id9', searchAttr:'value',
labelAttr:'label', labelType:'html'" spellcheck="false" tabindex="0" lang="en"
widgetid="view:_id1:checkOutFacilityID_content:_id4:inputText5" value="">
答案 0 :(得分:1)
我从IBM的Maire那里得到了答案。
最近的Ext发生了变化。关于Type Ahead的库更新。现在的解决方案是使用dojo添加设置。这是IBM发给我的电子邮件。
大卫,大卫, 版本901v00_04.20140226-1506中的移动类型提前行为已更改 有关更改的详细信息,请参阅&#34; XPage TypeAhead控件支持的改进&#34;在该版本的readme.pdf中。我正在重现您正在谈论的行为,并且我已经记录了SPR: SPR#MKEE9L7E9BLink XPages,Mobile TypeAhead,下拉列表中的第一项被插入编辑框(不应该)
解决此问题: 解决方法是编写一个更改编辑框行为的脚本, 所以将此控件插入XPage,并更改名称inputText1以匹配您的编辑框的名称:
<xp:panel id="panel1">
<xp:eventHandler event="onClientLoad" submit="false">
<xp:this.script><![CDATA[dijit.byId('#{id:inputText1}').autoComplete=false;/*Note autoComplete=false is different to autocomplete=off*/ ]]></xp:this.script>
</xp:eventHandler>
</xp:panel>
此致 Maire的
答案 1 :(得分:0)
我注意到添加到mobile的dojoType - dojotype =&#34; extlib.dijit.mobile.TypeAheadCombo&#34;。这听起来像是组合框和先行者的混合,这解释了你所看到的功能。
如果将Dojo属性添加到非移动属性,它是否有效?