2

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

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

我希望用户只有在满足以下三个条件之一时才能提交表单:

  1. '此页面有用吗?' 被回答了。
  2. 文本区域值不是空白,并且该值不等于默认文本值“我们如何改进此页面?提供反馈有助于我们改进这些信息'
  3. 或者,满足 1 和 2 中的两个条件。

基本上,我希望他们至少回答一个输入。

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

表格截图(可能有用): 在此处输入图像描述

4

1 回答 1

1

我就这个功能联系了 Kentico,他们的回复如下:

遗憾的是,没有提供这种类型的验证。Kentico CMS 分别对每个内置控件执行验证。

一般来说,您有两种选择。第一个是实现 OnBeforeValidateOnAfterValidate事件,这使您能够在必要时执行自定义验证。您可以按如下方式访问每个字段:

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

如果验证失败,则需要将BizForm控件的 StopProcessing设置为 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方法。

然后,只需禁用另一个字段,使其不会在表单上显示两次。

于 2012-06-07T08:09:46.693 回答