Javascript XPages-获取对话框中textarea的值

Javascript XPages-获取对话框中textarea的值,javascript,dojo,xpages,lotus-notes,xpages-ssjs,Javascript,Dojo,Xpages,Lotus Notes,Xpages Ssjs,我试图在xe:对话框中包含的textarea中获取文本输入的句柄,但未成功。按下XPage上的按钮后,xe:对话框“弹出”。这是我的密码: <xe:dialog id="InputDialog5"> <xe:this.title>"Input Dialog</xe:this.title> <xp:panel> <xp:inputTextarea id="InputTextBox5" value="#{document1.InputTextB

我试图在xe:对话框中包含的textarea中获取文本输入的句柄,但未成功。按下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"></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 request = facesContext.getExternalContext().getRequest();
var header = request.getHeader("Cookie");
var inputVal = @Middle(header,"InputTextBox5=",";")

setJobReferenceStatus(40,inputVal);
var redirect = "window.location='"+applicationScope.get("redirect")+"'";
facesContext.getViewRoot().postScript(redirect);}]]></xp:this.action>
<xp:this.script><![CDATA[
var inputvalue = document.getElementById("InputTextBox5").value;
alert("inputvalue = " + inputvalue);
dojo.cookie("InputTextBox5", inputvalue, { expires: 1 });
]]></xp:this.script>
</xp:eventHandler>
</xp:button>
</xe:dialogButtonBar>
</xe:dialog>

“输入对话框

我的想法是获取textarea的值,将其添加到dojo cookie中,使用SSJS检索cookie值,然后将该值传递给SSJS函数。但是,代码在获取textarea值的阶段已经失败;未执行,对话框保持“冻结”。知道如何解决此问题吗?

为了从客户端Javascript获得文本字段的句柄,您必须知道XPages生成的客户端id。因此,请改为计算CSJ中的id:

<xp:this.script><![CDATA[
  var inputvalue = document.getElementById("#{id:InputTextBox5}").value;
  alert("inputvalue = " + inputvalue);
  dojo.cookie("InputTextBox5", inputvalue, { expires: 1 });
]]></xp:this.script>

为了从客户端Javascript获取文本字段的句柄,您必须知道XPages生成的客户端id。因此,请改为计算CSJ中的id:

<xp:this.script><![CDATA[
  var inputvalue = document.getElementById("#{id:InputTextBox5}").value;
  alert("inputvalue = " + inputvalue);
  dojo.cookie("InputTextBox5", inputvalue, { expires: 1 });
]]></xp:this.script>

为了从客户端Javascript获取文本字段的句柄,您必须知道XPages生成的客户端id。因此,请改为计算CSJ中的id:

<xp:this.script><![CDATA[
  var inputvalue = document.getElementById("#{id:InputTextBox5}").value;
  alert("inputvalue = " + inputvalue);
  dojo.cookie("InputTextBox5", inputvalue, { expires: 1 });
]]></xp:this.script>

为了从客户端Javascript获取文本字段的句柄,您必须知道XPages生成的客户端id。因此,请改为计算CSJ中的id:

<xp:this.script><![CDATA[
  var inputvalue = document.getElementById("#{id:InputTextBox5}").value;
  alert("inputvalue = " + inputvalue);
  dojo.cookie("InputTextBox5", inputvalue, { expires: 1 });
]]></xp:this.script>

快速查看,我已经看到两大障碍:

a)
document.getElementById(…)
可能不行(事实上我从未真正尝试过)。我使用
XSP.getElementById(…)
dojo.byId(…)

b) 您的textarea在运行时永远不会拥有与设计时相同的id。只需使用浏览器的sourcecode viewer,您就会明白我的意思。因此,我们必须按照以下说明计算生成的id:

dojo.byId("#{id:InputTextBox5}")
然后将其转换为客户端对象的最终id,以便客户端脚本代码可以找到它


没有查看代码的其余部分,因此我无法判断其中是否存在更多潜在问题

快速查看后,我已经看到两个主要障碍:

a)
document.getElementById(…)
可能不行(事实上我从未真正尝试过)。我使用
XSP.getElementById(…)
dojo.byId(…)

b) 您的textarea在运行时永远不会拥有与设计时相同的id。只需使用浏览器的sourcecode viewer,您就会明白我的意思。因此,我们必须按照以下说明计算生成的id:

dojo.byId("#{id:InputTextBox5}")
然后将其转换为客户端对象的最终id,以便客户端脚本代码可以找到它


没有查看代码的其余部分,因此我无法判断其中是否存在更多潜在问题

快速查看后,我已经看到两个主要障碍:

a)
document.getElementById(…)
可能不行(事实上我从未真正尝试过)。我使用
XSP.getElementById(…)
dojo.byId(…)

b) 您的textarea在运行时永远不会拥有与设计时相同的id。只需使用浏览器的sourcecode viewer,您就会明白我的意思。因此,我们必须按照以下说明计算生成的id:

dojo.byId("#{id:InputTextBox5}")
然后将其转换为客户端对象的最终id,以便客户端脚本代码可以找到它


没有查看代码的其余部分,因此我无法判断其中是否存在更多潜在问题

快速查看后,我已经看到两个主要障碍:

a)
document.getElementById(…)
可能不行(事实上我从未真正尝试过)。我使用
XSP.getElementById(…)
dojo.byId(…)

b) 您的textarea在运行时永远不会拥有与设计时相同的id。只需使用浏览器的sourcecode viewer,您就会明白我的意思。因此,我们必须按照以下说明计算生成的id:

dojo.byId("#{id:InputTextBox5}")
然后将其转换为客户端对象的最终id,以便客户端脚本代码可以找到它


没有查看代码的其余部分,因此我无法判断其中是否存在更多潜在问题

谢谢,使用此语法可以获取字段的值。不幸的是,将其传递给SSJS函数仍然无法工作。您是否试图通过使用客户端JS将值存储在cookie中并读取文本区域的值然后使用SSJS从cookie中读取值?跳过CSJS并尝试使用document1.getValue(“InputExtBox5”)在SSJS中读取值。Henrik-感谢您的建议。我尝试了它,但没有成功。为了避免混淆,我创建了一个包含更新代码的新问题。正如Tim在您的另一个问题中所解释的,您可以在这里找到它,问题是您使用immediate=true,它告诉XPages不要发送回数据。谢谢,使用这个syntax允许我获取该字段的值。不幸的是,将其传递给SSJS函数仍不起作用。您是否试图通过使用客户端JS将值存储在cookie中,然后使用SSJS从cookie中读取值来读取文本区域的值?跳过CSJS并尝试使用document1.getValue(“InputExtBox5”)在SSJS中读取值。Henrik-感谢您的建议。我尝试了它,但没有成功。为了避免混淆,我创建了一个包含更新代码的新问题。正如Tim在您的另一个问题中所解释的,您可以在这里找到它,问题是您使用immediate=true,它告诉XPages不要发送回数据。谢谢,使用这个syntax允许我获取该字段的值。不幸的是,将其传递给SSJS函数仍不起作用。您是否试图通过使用客户端JS将值存储在cookie中,然后使用SSJS从cookie中读取值来读取文本区域的值?跳过