我有一个由javascript通过按钮点击提交的表单。这是一个ajax提交给iframe。一切正常,直到我将标签从"表单"更改为"cfform"。据我了解,这应该不会引起问题,但显然,我错了。我需要 cfform,因为我想使用带有富文本属性的 cftextarea。将标签作为 cfform,提交时 iframe 会显示一个 404,这完全让我难以置信。这是我的代码。
冷聚变:
//In my code, the lines are not broken like this
<cfform action="<cfif IsDefined('URL.itemID')>
actionEditItem.cfm
<cfelse>
actionAddItem.cfm</cfif>"
method="post" target="my_iframe" name="itemForm" enctype="multipart/form-data">
//the button that submits the form, again, lines aren't broken
<input type="button" <cfif IsDefined('URL.itemID')>
value='Update Item' onClick='javascript:updateItem();'
<cfelse>
value='Add Item' onClick='javascript:validateItem();'
</cfif>>
JavaScript:
itemForm.submit();
有什么想法吗?谢谢!
您不能像现在这样将 CFIF 放在 cfform
标签中。它试图渲染cfform
和中断。这不是常规 html 表单的问题。对于这个实例,我会设置一个临时变量并在 action
属性中使用它。
<cfif structkeyexists(url,"itemID")>
<cfset formAction = "actionEditItem.cfm">
<cfelse>
<cfset formAction = "actionAddItem.cfm">
</cfif>
<cfform action="#formAction#" method="post" target="my_iframe" name="itemForm" enctype="multipart/form-data">
...
或者,如果您不想使用临时变量,则可以使用 IIF
.
<cfform action="#iif(structkeyexists(url,'itemID'),de('actionEditItem.cfm'),de('actionAddItem.cfm'))#">