2017-04-27 1 views
0

Je suis un tout nouveau script de Coldfusion. Je dois valider un champ Email sur un formulaire, de sorte que le champ Email accepte l'adresse email "... @ waldorf.edu" des candidats potentiels SEULEMENT. Toutes les autres adresses e-mail doivent être une erreur. J'ai ce code en ce moment, mais il ne valide pas le domaine malheureusement.Validation de champ d'email dans Coldfusion

<tr bgcolor="##ffffff"> 
     <td valign="top" class="style13"><strong>Email</strong><br /> 
     <font size="2">(Must be Waldorf faculty member. <strong>Use "waldorf.edu" email address only.)</strong></font></td> 
     <td valign="top"><font color="##FF0000">*</font> 
     <cfinput type="text" Name="email" Message="Please input a valid Waldorf Email Address, ex.: [email protected]" validate="email" required="yes" value="#appinfo.email#" size="40"> </td> 
    </tr> 

Nous vous remercions de votre aide! Controller:

<cfcomponent name="fellowsapp" output="false"> 
<cfscript> 
    function init(fw) { variables.fw = fw; } 
</cfscript> 

<cffunction name="validate" access="public" returntype="array" output="false"> 
    <cfargument name="rc" type="struct" /> 
    <cfargument name="form" type="struct" />   
    <cfset var errors = arrayNew(1) /> 
    <cfset var thisError = structNew() /> 
<!--- Email ---> 
    <cfif form.Email eq ''> 
     <cfset thisError.field = "Email" /> 
     <cfset thisError.type = "error" /> 
     <cfset thisError.message = "Email is required" /> 
     <cfset arrayAppend(errors,duplicate(thisError)) /> 
    </cfif> 
+0

Où avez-vous écrit votre validation? –

+0

Le code ci-dessus est dans une vue. dans un contrôleur j'ai ce code que j'ai ajouté au code ci-dessous. – Gregg

+0

Rien à voir avec votre question, mais depuis que vous avez mentionné être nouveau à CF ... sauf si vous maintenez le code hérité, l'utilisation des contrôles de l'interface utilisateur CF est [généralement déconseillé ces jours-ci] (http://blog.adamcameron.me/2014 /01/oi-you-bloody-wankers-stop-using.html). Les principales raisons sont qu'ils utilisent des bibliothèques JS obsolètes et sont notoirement excentriques et difficiles à personnaliser. – Leigh

Répondre

2

Si l'exigence est de permettre que des adresses email @ waldorf.edu, il suffit de loin l'option pour l'utilisateur d'entrer dans cette partie de l'adresse. Rendez-le évident pour l'utilisateur. Quelque chose comme ceci:

<cfinput name="email" 
required="yes" 
message = "Please enter an email address" 
>@waldorf.edu 

Si vous voulez améliorer ceci sur la page du formulaire, vous pouvez ajouter un peu de javascript que les bandes loin le @character et tout ce qui suit.

Dans votre contrôleur, utilisez une expression régulière pour vous assurer que la valeur soumise contient uniquement des caractères valides pour les adresses électroniques @ waldorf.edu.