2017-03-14 30 views
0

Ich möchte meinen eigenen Validierungsablauf haben, mit benutzerdefiniertem Layout und Nachricht. Standardmäßig wird bei der Überprüfung vom Formular-Generator die gesamte Fehlermeldung neben dem Eingabefeld angezeigt. Und es wird alle Felder auf einmal validieren.Benutzerdefinierte Formular-Layout-Validierung

Ich möchte nach dem Senden Feld für Feld validieren, und Fehlermeldung wird an der gleichen Stelle für alle Eingabefelder angezeigt (neben der Schaltfläche zum Senden/oben auf dem Formular).

Derzeit versuche ich benutzerdefinierte Formularlayout mit "ASCX" -Typ. Ist es möglich, die gesamte Validierung im Backend-Code ".cs" durchzuführen?

Oder muss ich Java-Skript bei der benutzerdefinierten Formular-Layout-Design im Quellmodus injizieren?

Oder gibt es einen besseren Weg, es zu tun?

Antwort

1

In HTML Layout-Typ Sie Validierung Makros platzieren können überall Sie brauchen -> $$ Validierung: Vorname $$

Sie auch eine Validierung angeben können, welche die Form ohne Vorlage ausführt - Beispiel ->http://devnet.kentico.com/articles/tweaking-kentico-(2)-unique-fields

Wie auch immer, mit dem obigen Überprüfungsmakro können Sie die Fehlermeldung beliebig verschieben.

1

Gehen Sie in Ihrem Online-Formular zu Layout und geben Sie Ihr Layout-Markup mithilfe von HTML und den Makros für Formularfeldwerte, Beschriftungen und Validierung manuell ein. Dort können Sie angeben, wo alle Ihre Formularelemente auf dem Formular angezeigt werden, auch die Schaltfläche.

Wenn Sie benutzerdefinierte CS für die Überprüfung dieses Formulars haben möchten, sollten Sie vor dem Einfügen einen benutzerdefinierten Ereignishandler für das Formular erstellen. Siehe Dokumentation unten:

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 
     } 
    } 
} 
Verwandte Themen