2014-06-17 40 views
2

在XPages移動控件我遇到Typeahead問題。實際上,我認爲最近的行爲發生了變化 - 可能是最後更新了Ext。圖書館,但我不確定。那是當我們注意到改變的方式。一直在按照要求工作。XPage Typeahead自動完成行爲

下面是2個屏幕截圖。第一個是普通的XPage,第二個是Mobile Controls。

注意用戶如何在第一個開始輸入「D」而沒有「自動完成」。但在第二個屏幕截圖中,用戶鍵入了一個「D」,並立即添加了第一個值,在這種情況下,該值以「O」開頭。它取代了用戶輸入的「D」。 (事實上,開始「O」的記錄顯示正在按設計工作,所以忽略這一點)。

問題是我不希望自動完成發生在所有。我想要了解移動控件中第一個屏幕截圖的行爲。因此用戶可以繼續輸入,並且會繼續過濾列表並且不會覆蓋用戶輸入的內容。

我相當確定它曾經這樣做,我不知道發生了什麼變化。代碼本身沒有改變 - 我知道。

我試圖設置自動完成和自動更正爲「關閉」,沒有任何運氣。我不確定它們有什麼區別,或者他們是否真的發揮了作用。

如何讓字段不會自動填充到移動控件的內部?

任何意見,將不勝感激。我應該注意到,這是私人將在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> 

Preferred Behavior

Not Preferred

下面是輸出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

什麼HTML輸出到每個瀏覽器?它不同嗎?這可能是移動渲染不同的HTML –

+0

我已經將html結果添加到問題中。它顯示自動完成和自動更正「關閉」。 –

回答

1

我從IBM的Maire那裏得到了一個答案。

最近的分機發生了變化。圖書館更新關於類型提前。現在的解決方案是使用dojo添加設置。這是IBM發給我的電子郵件。

嗨大衛, 移動預輸入行爲釋放901v00_04.20140226-1506 改變對於細節上的變化,請參見「改進的XPages預輸入控制支持」的readme.pdf該版本。

我複製你在談論的行爲,我已經記錄了SPR:SPR #MKEE9L7E9BLink中使用XPages,移動預輸入,在下拉列表中第一項被插入到編輯框中(不應該)

要解決的問題: 解決方法是編寫一個腳本改變編輯框的行爲, 因此插入這種控制到您的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> 

Regards, Maire

0

我注意添加到移動設備的dojoType - dojotype =「extl ib.dijit.mobile.TypeAheadCombo」。這聽起來像是一個組合框和打字頭的混合體,它解釋了你所看到的功能。

如果您將Dojo屬性添加到非移動屬性,它會工作嗎?

+0

當我將其添加到非移動工作頁面時,無法顯示任何結果。那裏什麼也沒有。 –

+0

我懷疑你可能還需要包含一個Dojo模塊 –

相關問題