2017-04-27 12 views
0

私はColdfusionスクリプティングの新機能です。私はフォーム上の電子メールフィールドを検証する必要があるので、電子メールフィールドは将来の応募者からの "... @ waldorf.edu"電子メールアドレスを受け入れるだけです。他のすべての電子メールアドレスはエラーでなければなりません。私は今このコードを持っていますが、残念なことにドメインを検証しません。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> 

ありがとうございました! コントローラ:

<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

あなたはどこであなたのバリデーションを書いていますか? –

+0

上記のコードはビューにあります。コントローラでは、私はこのコードを上記のコードに追加しました。 – Gregg

+0

あなたの質問は何もしませんが、あなたはCFに慣れていないと言われて以来...レガシーコードを維持していない限り、CF UIコントロールの使用は[最近一般的には避けられます](http://blog.adamcameron.me/2014) /01/oi-you-bloody-wankers-stop-using.html)。彼らが時代遅れのJSライブラリを使用していることと、カスタマイズが困難であることが知られている主な理由です。 – Leigh

答えて

2

要件は、単にアドレスの一部を入力するユーザーのためのオプションを奪う、@ waldorf.edu電子メールアドレスのみを許可するようであれば。ユーザーにはっきりとわかるようにします。このような何か:

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

フォームのページでこれを強化したい場合、あなたはそれの後@character、すべてを剥ぎ、いくつかのJavaScriptを追加することができます。

コントローラでは、正規表現を使用して、送信された値に@ waldorf.edu電子メールアドレスに有効な文字のみが含まれていることを確認します。

関連する問題