1

我的 Xpage 中有一个字段,我希望它是只读的并在保存时提交到数据库。该字段从 Ajax 调用中获取值

将属性 ReadOnly 设置为 true 会创建一个<span>而不是只读字段。

设置属性“ Show disabled control for readonly ”会创建一个具有 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">

它不会被保存到数据库中。

据我所知,只读字段已提交但未禁用。

我在这里做错了什么?

/米

4

2 回答 2

5

您可以使用 attr-property 添加只读属性:

<xp:inputText id="inputText2" value="#{document1.ReadOnly}">
   <xp:this.attrs>
      <xp:attr name="readonly" value="true" />
   </xp:this.attrs>
</xp:inputText>

顺便说一句:disabledreadonly属性的行为是正确的,因为这是服务器端的定义。您想使用值编辑组件,这就是必须允许它接受值的原因。只是在客户端禁用它在技术上没有任何效果。

于 2013-02-01T08:42:05.237 回答
0

我认为这是一个错误。你是对的,只读字段应该被保存在版本 8.5.1 中,当“显示禁用的只读控件”属性不存在时,我曾经通过 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

于 2013-02-01T03:22:04.503 回答