我在表单上使用 ErrorMessage 控件来验证编辑框之类的内容。效果很好。当需要输入数据时,会弹出灰色的小警报类型框。
谁能给我举个例子,说明我如何对单选按钮、组合框等做同样的事情?甚至是一个常规按钮(比如我在表单上有一个添加文档按钮)。
我真的不在乎消息的实际显示方式。我只想让我的验证在所有组件的验证中保持一致。换句话说,我不想要一些服务器端和一些客户端验证。
有什么例子吗?我一直在使用我自己的 ext lib 对话框进行验证,效果很好,但我希望有一些更容易实现的东西。
我在表单上使用 ErrorMessage 控件来验证编辑框之类的内容。效果很好。当需要输入数据时,会弹出灰色的小警报类型框。
谁能给我举个例子,说明我如何对单选按钮、组合框等做同样的事情?甚至是一个常规按钮(比如我在表单上有一个添加文档按钮)。
我真的不在乎消息的实际显示方式。我只想让我的验证在所有组件的验证中保持一致。换句话说,我不想要一些服务器端和一些客户端验证。
有什么例子吗?我一直在使用我自己的 ext lib 对话框进行验证,效果很好,但我希望有一些更容易实现的东西。
我一直在使用此 XSnippet 的扩展版本进行验证。这使您可以在中央 SSJS 库中管理所有验证,然后在 Display Errors 控件中显示所有错误。
然后,在中央 SSJS 库中,您可以验证您的控件,包括单选按钮、组合框等,并结合您的验证(例如,当另一个控件具有特定值时检查一个控件的值)。
这是一个基于上述 XSnippet 的示例,用于验证当单选按钮组 (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 的评论以获得更好的方法。
甚至最简单直接:如果您有“选择一个选项”之类的选项并设置空值“”,则可以使用validateRequired,仅此而已。例子:
如果组合框值为:
["-Select an option-|","Text1|Value1","Text2|Value2"]
正如@Naveen 所说,您可以转到所有属性> 数据> 验证器> + > ValidateRequired > 设置您的消息,您就完成了。
能够通过使用@GetField 和组的名称来验证一组单选按钮。
在此示例中,组名称为 BankLoss:
// BankLoss
var radio1 = @GetField("BankLoss")
if (radio1 == null || radio1 == ""){
valid = false;
errors.push("Please indicate if there was a potential bank loss.");
}
为我工作...