javascript - cfif isdate(URL.day) 问题 - 总是调用 cfelse?

标签 javascript coldfusion coldfusion-9 coldfusion-8

我们有以下代码(部分代码),用作调度系统的一部分,我们可以在其中添加和编辑各种类别的信息。当我们启动“从上一个日期复制”功能时,我们会收到返回“日期无效”,您会注意到这是代码底部的 cfelse 条件的一部分(我相信最初的 cfif 是下面第一个)。然而,并非所有浏览器都会发生这种情况。它可以在某些 Windows 版本的 Firefox 中运行。

<cfif isdate(URL.day)>
    do a bunch of stuff...  

...

    <cfoutput>  
    <p><strong>Copy Schedule from:</strong> <select name="scheduleCopy" size="1" onchange="parent.F7cms.content.iframe('scheduleManagerDay#URL.day#-tab1','components/custom/scheduleManager.cfm?day=#URL.day#&copy_day=' + this.value);"><option value="">-- SELECT DAY --</option><cfloop query="pastDays"><option value="#day_id#">#dateFormat(day_date,"DDDD, MMMM D, YYYY")#</option></cfloop></select></p>
    </cfoutput>

...

<cfelse>
    <cfoutput><h2>The date is invalid.</h2></cfoutput>
</cfif>

本质上,当使用以下函数时,会显示“日期无效”的错误信息。此函数用于将信息从一个日期复制到另一个日期,并且我们相信该日期实际上是完全有效的。我认为有问题的 cif 是 。我已经放入了我认为与帮助缩小问题范围相关的大部分代码。任何提示将不胜感激。

此外,启动导致“日期无效”的过程的代码如下:

<cfoutput>  
<p><strong>Copy Schedule from:</strong> <select name="scheduleCopy" size="1"       onchange="parent.F7cms.content.iframe('scheduleManagerDay#URL.day#-tab1','components/custom/scheduleManager.cfm?day=#URL.day#&copy_day=' + this.value);"><option value="">-- SELECT DAY --</option><cfloop query="pastDays"><option value="#day_id#">#dateFormat(day_date,"DDDD, MMMM D, YYYY")#</option></cfloop></select></p>
</cfoutput>

这是从上面的代码生成的 HTML,单击时会导致错误:

<p><strong>Copy Schedule from:</strong> <select name="scheduleCopy" size="1" onchange="parent.F7cms.content.iframe('scheduleManagerDay2011-09-5-tab1','components/custom/scheduleManager.cfm?day=2011-09-5&copy_day=' + this.value);"><option value="">-- SELECT DAY --</option><option value="266">Sunday, September 4, 2011</option><option value="265">Saturday, September 3, 2011</option><option value="264">Friday, September 2, 2011</option><option value="263">Thursday, September 1, 2011</option><option value="262">Wednesday, August 31, 2011</option><option value="261">Tuesday, August 30, 2011</option><option value="260">Monday, August 29, 2011</option><option value="259">Sunday, August 28, 2011</option><option value="258">Saturday, August 27, 2011</option><option value="257">Friday, August 26, 2011</option><option value="256">Thursday, August 25, 2011</option><option value="255">Wednesday, August 24, 2011</option><option value="254">Tuesday, August 23, 2011</option><option value="253">Monday, August 22, 2011</option></select></p>

任何想法都会有帮助。

最佳答案

根据您回复我的评论:

URL.day 的输出似乎是 2011-09-5©_day=260

很明显为什么你会得到意想不到的结果(嗯:对你来说出乎意料......代码工作正常!)......“2011-09-5©_day=260”不能被解析为日期,因此 isDate() 验证失败。

您需要返回到调用此代码的代码,并找出为什么要在 URL 中传递此 bung 数据。在我看来,这就像某种尝试转义 ©_day 中的 & 符号的尝试,它将 © 视为 ©,并将其转换为版权符号。

查看调用代码可能会有所帮助。但是,正如其他人所说,只是相关的部分!

关于javascript - cfif isdate(URL.day) 问题 - 总是调用 cfelse?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7222362/

相关文章:

javascript - 处理 promise 链中的多个捕获

jquery - Chrome 上的 CFM 与 HTML 中的网站呈现方式不同

java - 从 Java 共享或发送复杂数据到 Coldfusion

mysql - 获取查询错误的查询

pdf - 我可以在 CFDOCUMENT 中包含另一个 PDF 吗?

javascript - jQuery 目标字符串的特定部分

javascript - 在 iframe 加载之前运行脚本

javascript - 如何在 knockout observablearray 中按索引访问对象?无法处理绑定(bind)

coldfusion - 在 ColdFusion 中使用 markdown 有哪些选择?

validation - coldfusion 中的 cfscript 电子邮件验证