我希望拥有自己的验证流程,包括自定义布局和消息。 默认情况下,表单生成器的验证会将所有错误消息放在输入字段旁边。并且它将在提交后立即验证所有字段。
我想在提交后逐字段验证,并在所有输入字段的相同位置显示错误消息(在表单顶部的提交按钮旁边)。
目前,我正在使用" ASCX"来尝试自定义表单布局。类型。是否可以在后端代码" .cs"?
中进行所有验证或者我必须在源模式下在自定义表单布局设计中注入java脚本?
还是有更好的方法吗?
答案 0 :(得分:1)
在HTML布局类型中,您可以将验证宏放置在您需要的任何位置 - > $$验证:姓$$
您还可以指定在不提交表单的情况下执行的验证 - 示例 - > http://devnet.kentico.com/articles/tweaking-kentico-(2)-unique-fields
无论如何,使用上面的验证宏,您可以在任何地方移动错误消息。
答案 1 :(得分:1)
在您的在线表单中,转到布局并使用HTML手动输入布局标记,并使用表格字段值,标签和验证的宏。在那里,您可以指定表单上所有表单元素的位置,甚至是按钮。
如果您希望使用自定义CS来验证该表单,那么最好在插入之前为表单创建自定义事件处理程序。请参阅以下文档:
Custom event handler
Form Event handler
using CMS;
using CMS.DataEngine;
using CMS.OnlineForms;
using CMS.Helpers;
// Registers the custom module into the system
[assembly: RegisterModule(typeof(CustomFormModule))]
public class CustomFormModule : Module
{
// Module class constructor, the system registers the module under the name "CustomForms"
public CustomFormModule()
: base("CustomForms")
{
}
// Contains initialization code that is executed when the application starts
protected override void OnInit()
{
base.OnInit();
// Assigns a handler to the Insert.After event
// This event occurs after the creation of every new form submission
BizFormItemEvents.Insert.After += Insert_After;
}
private void Insert_After(object sender, CMS.OnlineForms.BizFormItemEventArgs e)
{
if (e.Item.TypeInfo.ObjectType.ToLower().Contains("bizform.codename"))
{
//do some work or form validation
}
}
}