有一個required
字段:的XPages驗證
<xp:this.validators>
<xp:validateRequired
message="Required field. Please add some text.">
</xp:validateRequired>
</xp:this.validators>
另外,從該字段的值被複制(使用onChange
事件)發送給其他字段:
<xp:eventHandler event="onchange" submit="true"refreshMode="norefresh">
<xp:this.action><![CDATA[#{javascript:Cdoc.setValue("dlg_Localitate",Cdoc.getValue("txt_LocalitateCompanie"));
Cdoc.setValue("dlg_Localitate_1",Cdoc.getValue("txt_LocalitateCompanie"))}]]>
</xp:this.action>
</xp:eventHandler>
的不便的問題出現時,我只需點擊該字段填寫它:驗證消息出現。是因爲該字段最初是空的,我添加的代碼是在onChange事件?
我希望在用戶保存文檔之前根據需要使用此字段。
我試圖通過CSJS設置的值,但沒有結果......
var string = XSP.getElementById("#{id:inputText1}").value
XSP.getElementById("#{id:txt_LocalitateS}").value = string
XSP.getElementById("#{id:txt_LocalitateP}").value = string
此外,讓說,我輸入一個值inputText1
,後來我進入一個新的價值... ...我怎麼能用新值自動更新其他2個字段?
我想是這樣的:
<xp:inputText id="inputText1" value="#{Cdoc.txt_LocalitateCompanie}"
style="height:20.0px;width:122.0px;font-weight:bold;font-size:10pt;font-family:verdana"
required="true">
<xp:this.validators>
<xp:validateRequired message="Completarea localitatii este obligatorie.">
</xp:validateRequired>
</xp:this.validators>
<xp:typeAhead mode="full" minChars="1" ignoreCase="true"
id="typeAhead1">
<xp:this.valueList><![CDATA[#{javascript:@DbLookup(@DbName(),"vwLocalitati",Cdoc.txt_LocalitateCompanie,1,"[PARTIALMATCH]");}]]></xp:this.valueList>
</xp:typeAhead>
<xp:eventHandler event="onchange" submit="true"
refreshMode="norefresh">
<xp:this.action><![CDATA[#{javascript:Cdoc.setValue("dlg_Localitate",Cdoc.getValue("txt_LocalitateCompanie"));
Cdoc.setValue("dlg_Localitate_1",Cdoc.getValue("txt_LocalitateCompanie"))}]]></xp:this.action>
<xp:this.script><![CDATA[XSP.partialRefreshGet("#{id:txt_LocalitateS}", {
onComplete: function() {
XSP.partialRefreshGet("#{id:txt_LocalitateP}", {
onComplete: function(){ }
});
}
});]]></xp:this.script>
</xp:eventHandler>
</xp:inputText>
在此先感謝
是否可以在自定義querySave操作中設置這些字段?由於性能和用戶體驗,onChange事件通常是不好的做法。 – Greg
@Greg我也考慮過你的建議。我看到了一個很大的缺點:這些字段(我設置值的地方)是可編輯的,用戶需要的是:在填充'required'字段後,立即用相應的值設置這些字段。這幾乎就像來自Lotus Notes的'關鍵字更改刷新字段'。 –
如果您正在使用組合框/類似列出的控件,將其保留在onChange()中並不那麼顯着。我只想快速測試,如果刪除onChange代碼可以解決問題,因爲這很容易測試。很多人可能會遇到的一個解決方案,那就是使用更新按鈕。這樣的事情也會限制已經存在的信息被無意刪除的危險。 – Greg