【发布时间】:2015-03-30 17:35:24
【问题描述】:
我已经被困了一段时间,所以任何帮助将不胜感激。我是 ColdFusion 的新手,所以欢迎所有建议。
我正在收集cfform 中的数据,然后将其插入到 SQL 表中,它工作正常。目前,cfform 是使用 HTML 表中的 cfloop 自动生成的。但出于某种原因,cfinput-datefield 日历会生成 JavaScript 问题,除非 cfform 位于同一 td 中,这不是一个可行的选项。
我已经设法让它在另一个页面上工作,并将代码复制并粘贴到这个页面中,但仍然无济于事。 JS 错误是 Uncaught TypeError: Cannot read property split of undefined 但是,一旦 cfform 和 cfinput 彼此相邻,它就会消失。查看呈现的代码,似乎 cfform 正在立即关闭自己,<form...></form> 但不确定该怎么做。
get_vessel_info 和 get_container_info 都是之前的 cfqueries,可以完美运行。所有变量也已正确定义。
这是我的代码:
<cfoutput>
<table name="main-table">
<tr class="titlerow">
<td>#invoiceno#*</td>
<td>#dateofentry#*</td>
<td>#containerno#</td>
<td>#sealno#</td>
<td>#insurancecoefficient#*</td>
<td>#freightperkilo#*</td>
<td></td>
</tr>
<cfif get_vessel_info.number_of_containers gte 1>
<cfloop from="1" to="#get_vessel_info.number_of_containers#" index="i">
<cfform action="inboundcontainerinsert.cfm?vessel_ID=#session.vessel_ID#" name="containerinsertrow#i#" method="post">
<tr>
<td><cfinput type="text" name="invoice_no#i#" placeholder="#entervalue#" maxlength="50" required="yes" value="#invoicenovalue#"></td>
<td><cfinput type="datefield" name="date_of_entry#i#" placeholder="#selectvalue#" maxlength="50" required ="yes" value="#dateofentryvalue#" mask="DD-MMM-YYYY"></td>
<td><cfinput type="text" name="container_no#i#" placeholder="#entervalue#" maxlength="50" value="#containernovalue#"></td>
<td><cfinput type="text" name="seal_no#i#" placeholder="#entervalue#" maxlength="50" value="#sealnovalue#"></td>
<td><cfinput type="text" name="insurance_coefficient#i#" maxlength="50" required="yes" value="#insurance_covalue#"></td>
<td><cfinput type="text" name="freightperkg#i#" placeholder="#entervalue#" maxlength="50" required="yes" value="#freightperkgvalue#"></td>
<cfif #container_id# NEQ "">
<cfset submitname = 'updaterow'><cfset submitvalue = #freightstore_updaterow#>
<cfelse>
<cfset submitname = 'submitrow'><cfset submitvalue = #freightstore_submitrow#>
</cfif>
<td><cfinput type="submit" name="#submitname#" value="#submitvalue#"/></td>
</tr></cfform>
</cfloop>
我愿意接受任何建议。我不知道 jQuery 或 Ajax,所以我对使用它们犹豫不决,除非有人可以创建一个完美的工作修复程序。我已经包含了<cfajaximport tags="cfinput-datefield">,但无济于事。
如果您有任何问题,请随时提出。
【问题讨论】:
-
因为
cfinput。不要使用cfform、cfinput或 ColdFusion 的任何其他客户端功能。它们已经过时、执行不力并且非常有限。尝试在 Google 上搜索日期选择器,那里有很多效果更好且更易于使用的方法。此外,不要使用表格来布局表单。 1990 年代就是这样 -
感谢@Scott Stroz。我通常不会使用表格,但时间有限,我宁愿改进功能而不是演示。表格非常适合显示信息。如果我只使用
form,我会遇到来回传递数据的问题,希望不必重新编码整个页面......这是唯一可能的事情吗? -
cfform 似乎正在立即关闭 忽略使用 CF 表单控件的固有挑战,它看起来不像你的 html 是有效的。 stackoverflow.com/questions/5967564/form-inside-a-table..
-
@Leigh 谢谢!等我回到电脑前我会试试看,然后告诉你结果如何
-
@Leigh,你是明星。非常感谢!这么愚蠢的错误哈哈,至少下次我知道了
标签: html html-table coldfusion datefield cfinput