Kentico CMS:表单验证 - 至少有一个输入已回答

时间:2012-06-06 09:31:06

标签: forms validation content-management-system kentico

我在Kentico CMS网站上有一个简单的反馈表。

有两个输入和一个提交按钮。其中一个输入是是/否单选按钮选择,另一个是文本区域输入。 (请看截图)。

我希望用户只有在满足以下3个条件中的至少一个时才能提交表单:

  1. '这个网页有用吗?'得到了回答。
  2. 文本区域值不为空白且值不等于默认文本值“我们如何改进此页面?提供反馈有助于我们改进这些信息“
  3. 或者,满足1和2中的两个标准。
  4. 基本上,我希望他们回答至少一个输入

    使用Kentico表单/在线表单Web部件是否可以进行此类验证?

    表单截图(可能有用): enter image description here

1 个答案:

答案 0 :(得分:1)

我与Kentico就此功能进行了联系,他们的回复如下:

  

遗憾的是,未提供此类验证。 Kentico CMS   分别对每个内置控件执行验证。

     

通常,您有两种选择。第一个是实施    OnBeforeValidate OnAfterValidate 提供此功能的事件   必要时执行自定义验证。您可以访问每个字段   如下:

     

string answerText = ValidationHelper.GetString(viewBiz.BasicForm.Data.GetValue("answerText"), "");

     

如果验证失败,则需要设置 StopProcessing    BizForm 控制为true:

     

viewBiz.StopProcessing = true;

     

有关BizForm相关定制可能性的更多信息   可以在这里找到:   http://devnet.kentico.com/docs/devguide/index.html?api_bizforms_customization_possibilities.htm

     

另一种方法是创建自定义表单控件   在文档中描述:   http://devnet.kentico.com/docs/devguide/developing_form_controls.htm

     

表单控件允许用户指定两个字段和   因此,您可以执行自定义验证( IsValid 方法)   根据您的要求。

     

要设置除使用for控件的字段以外的字段,   你需要实现 GetOtherValues 方法。

     

然后,只需禁用其他字段,使其不显示在   形成两次。