我的Xpage中有一个字段,我想要只读取并在保存时提交给数据库。该字段从Ajax调用中获取值
将属性ReadOnly设置为true会创建<span>
而不是只读字段。
设置属性&#34; 显示已禁用的readonly控件&#34;创建一个输入文本字段,其属性为readonly = readonly。
<input type="text" class="xspInputFieldEditBox" readonly="readonly" name="view:_id1:_id2:_id3:_id28:callbackFieldControlSet:InstrumentShort" id="view:_id1:_id2:_id3:_id28:callbackFieldControlSet:InstrumentShort">
它不会保存到数据库中。
据我所知,readonly字段已提交但未被禁用。
我在这里做错了什么?
/ M
答案 0 :(得分:5)
您可以使用attr-property添加 readonly 属性:
<xp:inputText id="inputText2" value="#{document1.ReadOnly}">
<xp:this.attrs>
<xp:attr name="readonly" value="true" />
</xp:this.attrs>
</xp:inputText>
顺便说一句:已禁用和只读属性的行为是正确的,因为这是服务器端的定义。您希望使用值编辑组件,这就是必须允许它接受值的原因。在客户端禁用它在技术上没有任何影响。
答案 1 :(得分:0)
我认为这是一个错误。你是对的,the read only field should get saved。在版本8.5.1中,当&#34;显示禁用控件的属性为readonly&#34;我不习惯通过JavaScript将字段设置为只读。这是代码段:
<xp:scriptBlock id="scriptBlock1">
<xp:this.value><![CDATA[function makeFieldReadOnly() {
document.getElementById("#{id:inputText2}").readOnly = true;
}
window.onload = makeFieldReadOnly;]]></xp:this.value>
</xp:scriptBlock>
在上面的代码段中,当加载页面时,函数makeFieldReadOnly
将编辑框inputText2
标记为只读。