1

我有一个通过单击按钮由 javascript 提交的表单。这是一个 ajax 提交到 iframe。一切正常,直到我将标签从“form”更改为“cfform”。据我了解,这不应该引起问题,但显然,我错了。我需要cfform,因为我想使用带有richtext 属性的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();

有任何想法吗?谢谢!

4

1 回答 1

2

您不能cfform像现在这样在标签内放置 CFIF。它试图渲染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'))#">
于 2012-10-09T20:41:24.683 回答