我有一个显示“item”属性的表单。用户可以选择将文件/附件上载到此“项目”。当前,在带有类“testing”的div中,显示项的现有附件。用户使用“附加”按钮将文件附加到要更新的项。这些文件从来没有实际附加,直到表单提交了一个‘更新’按钮单击事件(这是我想要的)。表单提交是对iframe的ajax提交。我想使用jquery加载一个coldfusion页面,其中包含用于查找当前附加项到我的“testing”div中的查询。我最初的方法是在表单提交之后使用jquery的load函数:
//In the JS file, the selected item is used in the CF query
form.submit();
$('.testing').load('itemAttachments.cfm?itemID=' + selectedItem);我知道我的coldufusion查询可以工作,因为它是'testing‘div中的一个cfinclude,页面最初加载的是正确的信息。在表单submit上,jquery返回cf页面,但是使用相同的数据而不是列出的新附件。当我刷新页面时,数据将正确显示(即,使用所列的新附件)。这让我相信一切都正常,但是jquery负载在Oracle处理查询之前就已经发生了。
这是正确的吗?如果是的话,我怎样才能解决这个问题?谢谢。
编辑表单提交给一个隐藏的iframe.The问题的目标是表单提交和jQuery.load()都使用相同的页面itemAttachments。但是jquery ()首先得到结果,然后才提交表单,尽管.load在代码中是在表单提交之后。
发布于 2012-08-15 15:47:13
我将jquery加载的脚本添加到coldfusion处理页面。我给了它一个window.parent.document的范围
<SCRIPT LANGUAGE="JAVASCRIPT">
$(document).ready(function(){
$('.testing', window.parent.document).load('processForm.cfm?itemID=' + <cfoutput>#itemID#</cfoutput);
});
</SCRIPT>这个成功了。
发布于 2012-08-11 10:42:28
这个使用iframe的技巧给您提供了2个并行请求,也许.load赢了比赛。如果您已经使用了jquery,我建议您也使用jquery并执行load (甚至只是使用ajax响应)。
如果您由于某种原因不得不使用iframe黑客,那么您需要将事件附加到iframe。例如,您可以在iframe重新加载时启动它:
$('#iframe').load(function(evt){
//do some checks
$('.testing').load('itemAttachments.cfm?itemID=' + selectedItem);
});https://stackoverflow.com/questions/11907039
复制相似问题