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

关于javascript - cfform目标iframe页面丢失,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12807632/

10-11 21:51