Coldfusion中的电子邮件字段验证

时间:2017-04-27 21:30:46

标签: forms validation coldfusion email-validation

我是Coldfusion脚本的新手。我需要在表单上验证电子邮件字段,以便电子邮件字段接受" ... @ waldorf.edu"来自潜在申请人的电子邮件地址。所有其他电子邮件地址都应该是错误的。我现在有这个代码,但不幸的是它没有验证域名。

<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.: you@waldorf.edu." 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> 

1 个答案:

答案 0 :(得分:2)

如果要求仅允许@ waldorf.edu电子邮件地址,只需取走用户输入该部分地址的选项即可。让用户明白。像这样:

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

如果你想在表单页面上增强它,你可以添加一些javascript来消除@character及其后的所有内容。

在控制器中,使用正则表达式确保提交的值仅包含对@ waldorf.edu电子邮件地址有效的字符。