Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xpages 组合框、单选按钮、常规按钮等的验证?_Xpages - Fatal编程技术网

Xpages 组合框、单选按钮、常规按钮等的验证?

Xpages 组合框、单选按钮、常规按钮等的验证?,xpages,Xpages,我在表单上使用ErrorMessage控件来验证编辑框之类的内容。效果很好。当需要输入数据时,会弹出小的灰色警报类型框 有人能给我举个例子,说明我如何对单选按钮、组合框等做同样的事情吗?甚至是一个常规按钮(比如我在表单上有一个添加文档按钮) 我真的不在乎信息是如何显示的。我只希望我的验证在所有组件的验证中保持一致。换句话说,我不需要一些服务器端和客户端验证 有什么例子吗?我一直在使用自己的ext-lib对话框进行验证,该对话框工作得很好,但我希望有更容易实现的东西。我一直在使用扩展版的。这使得您

我在表单上使用ErrorMessage控件来验证编辑框之类的内容。效果很好。当需要输入数据时,会弹出小的灰色警报类型框

有人能给我举个例子,说明我如何对单选按钮、组合框等做同样的事情吗?甚至是一个常规按钮(比如我在表单上有一个添加文档按钮)

我真的不在乎信息是如何显示的。我只希望我的验证在所有组件的验证中保持一致。换句话说,我不需要一些服务器端和客户端验证


有什么例子吗?我一直在使用自己的ext-lib对话框进行验证,该对话框工作得很好,但我希望有更容易实现的东西。

我一直在使用扩展版的。这使得您可以在中央SSJS库中管理所有验证,然后在显示错误控件中显示所有错误

在中央SSJS库中,您可以验证您的控件,包括单选按钮、组合框等,并组合验证(例如,当另一个控件具有特定值时,检查一个控件的值)

下面是所提到的XSnippet上的一个示例baesd,用于验证当单选按钮组(radioField)的值为1时,某个字段(FieldA)是否已填充:

var radioVal = getComponent("radioField").value;
var control = getComponent("FieldA");
var val = control.getValue();
if (radioVal == "1" && isEmpty(val)){
  valid = false;
  postValidationError(control, "Please fill in ...");
}

我希望ErrorMessage控件指的是“显示错误”控件。对于“数据”中所有属性中的组合框,您将找到“验证器”。在这里,您可以像添加编辑框一样添加验证。对于组合框,我通常使用
validateExpression
。然后我使用“显示错误”控件来显示错误

<xp:comboBox id="comboBox1">
    <xp:this.validators>
        <xp:validateExpression message="Please select value in combo box.">
            <xp:this.expression><![CDATA[#{javascript:!getComponent("comboBox1").getSubmittedValue().equalsIgnoreCase("Select")}]]></xp:this.expression>
        </xp:validateExpression>
    </xp:this.validators>
    <xp:selectItem itemLabel="Select" itemValue="Select"></xp:selectItem>
    <xp:selectItem itemLabel="1" itemValue="1"></xp:selectItem>
    <xp:selectItem itemLabel="2" itemValue="2"></xp:selectItem>
    <xp:selectItem itemLabel="3" itemValue="3"></xp:selectItem>
</xp:comboBox>
<xp:message id="message1" for="comboBox1"></xp:message>

在上面的示例中,如果用户未在组合框中选择任何项目,则会向用户显示错误消息。请注意,这是一个服务器端验证。我还没有尝试过其他控件,但它应该以类似的方式工作

如果我正确理解了你的问题,请告诉我


2013年2月7日更新:查看下面Mikael Grevsten的评论,了解更好的方法。

能够使用@GetField和组名验证一组单选按钮

在本例中,组名为BankLoss:

// BankLoss
var radio1 = @GetField("BankLoss")
if (radio1 == null || radio1 == ""){
    valid = false;
    errors.push("Please indicate if there was a potential bank loss.");
}

为我工作…

即使是最简单和直接的:如果您有一个选项,如“选择一个选项”并设置空值“”,您可以使用验证所需的,仅此而已。 例如:

如果组合框值为:

["-Select an option-|","Text1|Value1","Text2|Value2"] 

正如@Naveen所说,你可以进入所有属性>数据>验证程序>+>验证要求>设置你的消息,你就完成了。

我想你是说这个?我一直没能让它工作。有没有可行的例子?是的,这就是我在回答中提到的。我在几个应用程序中使用它,所以我有工作的例子。我让它工作,但我不喜欢它。它不会将焦点设置为正在验证的控件。还是我还在做错事?关键是要验证中央脚本库中的几个控件,然后在“显示错误”控件中显示所有失败控件的验证错误消息。如果要扩展“显示错误”功能,请查看以下内容:谢谢。这是一个很好的选择,但我想我会回到我最初的验证。我喜欢将焦点设置为出错的控件。您可以将“选择”选项的itemValue保留为空字符串,它将验证为空,并显示错误@米凯尔格雷夫斯滕:是的,这很有效。谢谢当我使用属性中的值选项卡在组合框中输入值时,生成的XPage代码是
,没有
itemValue
属性。生成的HTML代码为
Select
,因此我使用了
validateExpression
。我可能应该更经常地查看XPage源代码:)很好!我通常在组合框中键入“*选择一个选项*”作为第一个条目,如果值为“0”,则会将源中的零删除。。。