XPages-获取对话框内文本区域的值-第2部分 [英] XPages - get value of a textarea inside a dialog - Part 2

查看:13
本文介绍了XPages-获取对话框内文本区域的值-第2部分的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我上一个问题的后续内容: 我试图获得文本输入到包含在xe:对话框中的文本区域的句柄,但没有成功。按下XPage上的按钮后,xe:对话框"弹出"。以下是我的代码:

<xe:dialog id="InputDialog5">
<xe:this.title>Input Dialog</xe:this.title>
<xp:panel>
<xp:inputTextarea id="InputTextBox5" value="#{document1.InputTextBox5}" 
cols="60" rows="4" styleClass="StatusDialogLabel"></xp:inputTextarea>
</xp:panel>
<xe:dialogButtonBar id="dialogButtonBar15">
<xp:button value="OK" id="button37">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete" immediate="true">
<xp:this.action>
<![CDATA[#{javascript:var inputVal = document1.getValue("InputTextBox5");
setJobReferenceStatus(40,inputVal);
var redirect = "window.location='"+applicationScope.get("redirect")+"'";
facesContext.getViewRoot().postScript(redirect);
}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
</xe:dialogButtonBar>
</xe:dialog>
不幸的是,Document1.getValue("InputTextBox5");行不起作用,它将"null"而不是字段中包含的值传递给setJobReferenceStatus函数。知道此代码无法工作的原因吗?

推荐答案

eventHandler中删除immediate="true"

每个事件都支持两个绕过验证的选项(请参阅this answer更多详细信息)。请注意,在PER的答案中,eventHandler包括属性赋值disableValidators="true"。这映射到"处理数据而不验证"选项,而immediate="true"映射到"不验证或更新数据"选项。

当使用后一个选项时,事件运行时不会将任何更新推入数据模型(即文档),这就是为什么即使用户已经填充值,编辑框的值也是null。如果将immediate="true"替换为disableValidators="true",您的事件仍将运行,不会触发任何验证失败,但数据模型将包含用户在编辑框中填充的任何值。

这篇关于XPages-获取对话框内文本区域的值-第2部分的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆