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

时间:2011-08-28 16:53:11

标签: 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>

本质上,当使用以下功能时,显示“日期无效”的cfelse。此功能用于将信息从一个日期复制到另一个日期,我们相信日期实际上是完全有效的。我认为违规的cfif是。我已经把大部分代码放在了我认为与帮助缩小问题相关的代码中。任何提示将不胜感激。

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

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

任何想法都会有所帮助。

1 个答案:

答案 0 :(得分:2)

根据您对我的回复的评论:

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

很明显你为什么会得到意想不到的结果(好吧:意外地 ......代码工作正常!)......“2011-09-5©_day = 260”不能被解析为日期,因此它未通过isDate()验证。

您需要返回调用此代码的代码,并找出您在URL中传递此bung数据的原因。它看起来像是在&amp; copy_day中试图逃避&符号的某种尝试,并且它将&amp; copy复制为&amp; copy;,并将其转换为版权符号。

查看调用代码可能有所帮助。但是,正如其他人所说,只是RELEVANT位!