改进的错误信息

  

好消息是,你可以解决这两个问题,只要提供的隐藏字段的值属性替代的信息,如下面的例子:

现在,随着形式验证,如果用户不提供,用户将得到我们的自定义错误信息而不是ColdFusion的默认的错误信息。有一个错误在ColdFusion的MX如所需表格字段的自定义错误信息被忽略了。这是与Macromedia的已知问题,按计划将在他们未来的ColdFusion的MX更新2,应可下载的这篇文章发表的时间固定,虽然字符串属性提供的价值。只能说是任何措辞你要显示,将在另外的HTML字符串也是可以接受的。因为它是简单地通过浏览器后,您可以,例如,使用标签来添加一些更多的格式以您的错误信息。

好了,value属性使您能够改善错误信息的措辞,但对于在它的屏幕上提供的整体外观?此消息是如何影响您的丰富多彩的应用程序的整体外观,其柔和的蓝色机构背景和适当的文字色彩,突然出现在与黑色的古罗马时代在白色背景上的文本屏幕?什么您网站的导航工具栏?如果用户对这项错误出现的问题,他如何能找到你的联系方式网页?用户甚至没有看到一个网络管理员联系您的标准页脚。突然,这个漂亮的自动工具无法看起来有用,因为它没有乍看之下。事实上,许多开发人员干脆放弃了这个原因了。这是一个可以解决的问题,但是,至少比留在这个平原blackon白色格式的网页更大程度。您可以控制页面的整个布局(颜色,字体等,使用普通的HTML标记)。你甚至可以正确地在网页上的导航工具栏和其他功能。解决方法是添加到您的CFERROR类型代码=“验证”,它使您能够指定一个错误处理模板创建你自己的格式的外观只有这验证错误。

在上述关于使用这种自动服务器端验证的一部分确定了三个问题上可能是最糟糕的,和许多人来说,没有足够的理由,甚至建议将使用服务器端自动验证。问题是,这一进程需要用户“使用Web浏览器的后退按钮返回到前一页,纠正上市的问题。”这是一件好事,建议?大概没有。在某些情况下,这样做会导致这是在窗体中输入信息丢失!想象一下,一花时间填写注册表单,对数据的几件好位,要求用户感到沮丧。他/提交它,被告知它包含一个错误(也许只是一个错误),用户点击后退按钮,却发现该窗体被清除!,你可以做绝对没有任何有关此问题。它通常与浏览器缓存是不容易控制的问题。您可能会想,这不是什么大不了的,无论如何,因为没有必要的验证意味着用户没有进入第一个领域所需要的东西地方,但认为可能因为您的数据,其中只有一个失败的验证要求几个领域。这个问题并不严重,如果只是提示用户名和密码。但是,在一个更复杂的形式,它可以发展成为一个大问题。只是敏感的挑战。幸运的是,选择存在于客户端验证,我们在后面讨论。现在,你有其他类型的验证,您可以通过使用这种自动服务器端验证。当您了解如何工作的过程中,你需要了解其他指示一般。

除了_required验证,几个提供了我们前面列出的一些文章简单的验证。简洁明了,可能会出现这些选项,您需要注意一些问题,其中大部分都有。其中许多问题围绕着一个事实,即除了只验证输入的数据,验证过程也改变了在某些情况下数据后,才到行动的页面传递,而且其方法也可能不是很明显,也不符合市场预期,以下列表说明:

_integer:如果数字用户输入包含逗号或美元符号,这些字符将被删除的验证和不传递到操作页面。该文件还表示,它轮输入的号码是否包括十进制值,但实际上,它只是截断他们。

_float:删除逗号和美元符号相同的方式_integer的做法,但也转换为数字(如提交的行动页),以便有6位小数点后面,用零填充。

_range:预计值的范围内指明的最小值,作为第三十属性=最大值= yyy,用空格隔开。它也并不视为_float(允许十进制值和转换的数量,以便它有6个小数位的权利,以及消除逗号和美元符号)号码是相同的。_range也可以指定只有一个边界。 (但是,必须把数量后的空间,如分= 5。不能= 5分钟的状态,没有空间,至少在之前的版本5,因为这样做会导致严重的错误。)最后,由于范围,在属性中指定的值,你不能提供一个失败的范围验证定制的信息。

日期_:接受,如12/2/01,01年12月2日的多种格式,甚至在12-2-01,12月2日,12月2日,12月2日,依此类推。更重要的是,输入的日期转换到ODBC的日期格式:12/13/01成为(Ḏ'2001 - 12 - 13')。这没关系,如果你存储在ODBC数据库的值(因为它可以节省您的需要转换的日期对该格式),但如果对显示屏的网页上的行动(或存储在非ODBC数据库) ,您需要将它转换。要注意的DateFormat()函数,这对使用新版本的转换回到一个正常的日期格式。如果年份是不放过一个日期,此指令假设当前年份。如果只有一个号码输入,但是,(或许打算在本月的日期),这是行不通的。这种单数否决无效的日期。日期_不接受欧洲格式的日期前一个月(天),如果它的唯一途径,日期也可能会被有效:13/12/01,因此,接受并成为(Ḏ '2013 - 12 - 01')。即便如此,使用_eurodate的选择是最好只使用日期_如果您的用户进入他们在欧洲的日期格式。奇怪的是,如果输入的值是不是没有一个有效的日期(13/13/13)还是没有一个时间,所有(x)的,但是双方都只是:为formfield字段('值'输入的值)的默认邮件未正确格式化。没有真正表达,它需要一个日期,更不用说一个有效的。这表明你确实应该提供一个自定义消息。

_eurodate:股份的各个部分的日期_。唯一的区别是默认的格式将是一天中的欧洲秩序,按月其次(然后,选择,年)。

_time:日期_一样,这个指令不仅验证了时间,但也将其转换为一个ODBC时间格式:1:12变为(吨'01:12:00')。正如日期_,这种转换是好的,如果你存储在ODBC数据库中的数据(因为它可以节省您的需要将它转换到该格式),但如果对显示屏的网页上的行动(或在存储非ODBC数据库),你需要转换为使用可用时间格式()函数回来。 _time接受1 /时/分和P /下午/指定一个时期下午。如果指定,留下来的,它假定分。您也可以输入,如上午10时只是一个小时,期间指示符,它假定小时(10:00:00)。如果只有一个号码是没有指示符进入一个时期,但是,也许是因为用户是指打算在上午的时间,该值是一个无效的时间拒绝。奇怪的是,如果输入的日期,它接受它,但它的价值封套(吨'00:00:00'),意思是午夜。 (这样的结果可能是合乎逻辑的,但可能不会被大多数开发人员的预期。)其他一些一般性问题,适用于一个或更多的这些服务器端验证如下列表,描述:

正如在文章中,我们都被验证的用户名和密码字段,较早的例子表明,你可以,当然,在验证中的一个形式,为多个字段。你只需添加一个隐藏的每个字段场标记,您要验证。此错误信息显示反映了所有验证错误的发生。

您也可以指定一个以上的字段验证。为了表明一个时代的字段是需要而且必须是整数,例如,您只需创建两个隐藏字段标签名为age_required和age_integer分别。

添加有效性规则的字段不使其成为必需字段。您需要添加一个单独的_required隐藏字段,如果你想要确保用户输入。

你可能会担心影响在服务器端处理时间,如果它总是执行此验证。任何时候失去了可以忽略不计,真的,而更重要的性能消耗方面。你面临的一个很不幸的事,但是,你必须始终保持意识到:参看行动总是在一个网页的形式来决定它是否包含结尾的领域后缀。此外,然后删除从数据库中更新标签使用CFINSERT和CFUPDATE。这可能导致一个问题,如果你在这样的Joined_Date数据库字段(即日期,用户加入您的服务形式这些领域的字段列表) 。参看会看到任何形式的字段包含该名称(Joined_Date)作为一个“加入”字段验证。更糟糕的,因为它会前,然后删除处理CFINSERT或CFUPDATE领域的Joined_Date,您可能会发现该列没有插入/更新。同样,只是了解了这一问题。这往往是非常难以解决的错误来源。所以这是一个自动服务器的简要介绍端验证。这是一个功能,有其优势与劣势。但是,一个最关心的应该是,因为服务器端验证强制用户备份,以纠正任何错误,它实在不应该,如果使用的形式要求用户超过一对夫妇输入域。 (你在后面看到手工编码的服务器端验证用于其他目的完全。)相反,如果你需要验证几个表单域,您可以提供使用客户端验证用户带来更好的体验,以及自动功能参看使这一点很容易做到,即使你不知道的JavaScript。

由吉尔Babcoff提交的一篇文章


免责声明:我们的网站是不负责本文章的内容。 Webarticles是一个免费的信息资源。
重要事项: 这篇文章“改善错误信息”是由自动软件翻译。我们感到很遗憾拼写的任何可能发生的错误。谢谢您的理解。


Online: 518 users browsing the articles directory