我是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>
答案 0 :(得分:2)
如果要求仅允许@ waldorf.edu电子邮件地址,只需取走用户输入该部分地址的选项即可。让用户明白。像这样:
<cfinput name="email"
required="yes"
message = "Please enter an email address"
>@waldorf.edu
如果你想在表单页面上增强它,你可以添加一些javascript来消除@character及其后的所有内容。
在控制器中,使用正则表达式确保提交的值仅包含对@ waldorf.edu电子邮件地址有效的字符。