Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 缺少cfform目标iframe页面_Javascript_Ajax_Forms_Coldfusion - Fatal编程技术网

Javascript 缺少cfform目标iframe页面

Javascript 缺少cfform目标iframe页面,javascript,ajax,forms,coldfusion,Javascript,Ajax,Forms,Coldfusion,我有一个表单,由javascript通过点击按钮提交。这是对iframe的ajax提交。在我将标签从“form”改为“cfform”之前,一切都很顺利。据我所知,这不应该造成问题,但很明显,我错了。我需要cfform,因为我想使用带有richtext属性的cftextarea。当标签为cfform时,在提交时,iframe显示一个404,这完全让我难以置信。这是我的密码 coldfusion: //In my code, the lines are not broken like this &l

我有一个表单,由javascript通过点击按钮提交。这是对iframe的ajax提交。在我将标签从“form”改为“cfform”之前,一切都很顺利。据我所知,这不应该造成问题,但很明显,我错了。我需要cfform,因为我想使用带有richtext属性的cftextarea。当标签为cfform时,在提交时,iframe显示一个404,这完全让我难以置信。这是我的密码

coldfusion:

//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>>

有什么想法吗?谢谢

您不能像现在这样将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">
...

使用
cfform
会向页面添加大量javascript,我认为这与javascript代码冲突。使用
cfform
与只使用常规
表单
相比,只需查看页面的源代码,您就会明白我在说什么。可能你也会发现这个问题。iif有点慢,所以我会使用这个变量,一旦设置好,你也可以在其他地方使用它。如果使用CF9或10,可以使用三元运算符action=“#structKeyExists(url,'itemID')?'actionEditItem.cfm':'actionAddItem.cfm'”来详细说明phantom42的答案,可以将cfif放在动作属性中(这就是为什么它不会出错),但它不会计算。查看源代码后,HTML看起来像
<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">
...
<cfform action="#iif(structkeyexists(url,'itemID'),de('actionEditItem.cfm'),de('actionAddItem.cfm'))#">