【问题标题】:Email field validation in ColdfusionColdfusion 中的电子邮件字段验证
【发布时间】:2017-09-25 20:47:42
【问题描述】:

我是 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> 

【问题讨论】:

  • 你的验证是在哪里写的?
  • 以上代码在一个视图中。在控制器中,我将这段代码添加到下面的上述代码中。
  • 与您的问题无关,但由于您提到是 CF 新手……除非您维护旧代码,否则 CF UI 控件的使用是 generally discouraged these days。主要原因是他们使用过时的 JS 库并且出了名的古怪且难以定制。

标签: forms validation coldfusion email-validation


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 2021-11-27
    • 1970-01-01
    • 2012-04-08
    • 2011-03-06
    • 1970-01-01
    相关资源
    最近更新 更多