我们有以下代码(部分代码),用作调度系统的一部分,我们可以在其中添加和编辑各种类的信息。当我们发起“从前一个日期复制”功能时,我们会收到“日期无效”的回复,你会注意到它是代码底部的一个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#©_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#©_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©_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>
任何想法都会有所帮助。
答案 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位!