Xpages 根据textarea字段的长度计算按钮的可见属性

Xpages 根据textarea字段的长度计算按钮的可见属性,xpages,xpages-ssjs,Xpages,Xpages Ssjs,我想根据文本区域字段(多行编辑框)的内容计算按钮的可见性。它应该至少包含一些文本 我可以使用onkeypress事件(服务器)对按钮执行部分刷新,但我注意到当用户在字段中写入时,部分刷新微调器会出现。我想避免这种情况 我有什么选择?您最好为该事件编写客户端脚本。当文本区域中的字符超过200个时,此脚本应显示该按钮。最初需要将按钮的样式可见性设置为“隐藏”。如果表单可以多次编辑,则需要将其作为函数编写,并在页面加载和按键事件中调用它 如果您可以使用keyup事件而不是keypress,这可能会更好

我想根据文本区域字段(多行编辑框)的内容计算按钮的可见性。它应该至少包含一些文本

我可以使用onkeypress事件(服务器)对按钮执行部分刷新,但我注意到当用户在字段中写入时,部分刷新微调器会出现。我想避免这种情况


我有什么选择?

您最好为该事件编写客户端脚本。当文本区域中的字符超过200个时,此脚本应显示该按钮。最初需要将按钮的样式可见性设置为“隐藏”。如果表单可以多次编辑,则需要将其作为函数编写,并在页面加载和按键事件中调用它

如果您可以使用keyup事件而不是keypress,这可能会更好

var textareaID = '#{id:textareaID}';
var buttonID = '#{id:buttonID}';
var textareaValue = document.getElementById(textareaID).value;
var visibility;

if (textareaValue.length > 200) {
    visibility = 'visible';
}
else 
{
    visibility = 'hidden';
}
document.getElementById(buttonID).style.visibility=visibility;

最好为该事件编写客户端脚本。当文本区域中的字符超过200个时,此脚本应显示该按钮。最初需要将按钮的样式可见性设置为“隐藏”。如果表单可以多次编辑,则需要将其作为函数编写,并在页面加载和按键事件中调用它

如果您可以使用keyup事件而不是keypress,这可能会更好

var textareaID = '#{id:textareaID}';
var buttonID = '#{id:buttonID}';
var textareaValue = document.getElementById(textareaID).value;
var visibility;

if (textareaValue.length > 200) {
    visibility = 'visible';
}
else 
{
    visibility = 'hidden';
}
document.getElementById(buttonID).style.visibility=visibility;

Rob是对的,永远不要考虑SSJS事件。出于性能方面的考虑,将CSJS与Dojo/jQueryRob结合使用是正确的,永远不要考虑SSJS事件。出于性能原因,将CSJS与Dojo/jQueryHelloRob结合使用,您的代码就可以做到这一点。似乎我必须一直使用csjs来避免部分刷新对话框。我决定使用jquery并通过show()和hide()设置display属性,而不是设置可见性样式属性,因为按钮的空间将在UI中保留,因此可以看到一个空白。谢谢你帮助我!你好,罗布,你的代码就成功了。似乎我必须一直使用csjs来避免部分刷新对话框。我决定使用jquery并通过show()和hide()设置display属性,而不是设置可见性样式属性,因为按钮的空间将在UI中保留,因此可以看到一个空白。谢谢你帮助我!