Javascript 使用表单以div为目标

Javascript 使用表单以div为目标,javascript,html,jsp,Javascript,Html,Jsp,我有一个JSP页面,其中有一个包含表单的div。在表单提交时,该操作转到spring控制器并返回一个新页面,我必须将新页面加载到调用该操作的同一个div中 我只能使用JavaScript。如果您正在使用表单,在表单提交事件页面上,将转到表单操作的位置。要避免这种情况,请使用带有Iframe的表单。在iframe的onload中,您应该将它的内部html设置为目标的内部html。让我简单地解释一下 <form action="url.php" id="formid" type="post"

我有一个JSP页面,其中有一个包含表单的div。在表单提交时,该操作转到spring控制器并返回一个新页面,我必须将新页面加载到调用该操作的同一个div中


我只能使用JavaScript。

如果您正在使用表单,在表单提交事件页面上,将转到表单操作的位置。要避免这种情况,请使用带有Iframe的表单。在iframe的onload中,您应该将它的内部html设置为目标的内部html。让我简单地解释一下

<form action="url.php" id="formid" type="post" target="iframename"> <input type="submit" onclick="submitFn()"/> </form> <irame id="iframeid" name="iframename" onload="onLoadFn()"></iframe> /* Dont forget to hide your iframe */ iframe { width: 0px; height: 0px; border: none; } // This function will validate form and post it to form's action function submitFn(){ // validate form here document.getElementById('formid').submit() } // this function will handle form's post callback and load response to div function onLoadFn(){ document.getElementById('targetDiv').innerHTML = document.getElementById('iframeid').innerHTML; } </表格> </iframe> /*别忘了把你的照片藏起来*/ iframe{ 宽度:0px; 高度:0px; 边界:无; } //此函数将验证表单并将其发布到表单的操作中 函数submitFn(){ //在此验证表单 document.getElementById('formid').submit() } //此函数将处理窗体的后回调和对div的加载响应 函数onload fn(){ document.getElementById('targetDiv').innerHTML=document.getElementById('iframeid').innerHTML; }
使用“普通”代码不可能实现您想要的功能


一种方法(我个人不喜欢)是使用内部框架,另一种方法是使用AJAX:不提交表单,而是使用相同的数据向服务器发送AJAX请求,并使用服务器的响应填充
div
。使用jQuery只需要几行代码。

放置iframe和div有点棘手

这是正确的解决办法

<div id="targetDiv"></div>
    <script>
       function onLoadFn(){
            var frame = document.getElementById('resultFrame');
            if(frame){
               document.getElementById("targetDiv").innerHTML = (frame.contentWindow.document.body.innerHTML)
            }
        }
    </script>
<iframe name="resultFrame" id="resultFrame" width="100%" style="border:none;display:none" onload="onLoadFn()"></iframe>

函数onload fn(){
var frame=document.getElementById('resultFrame');
如果(帧){
document.getElementById(“targetDiv”).innerHTML=(frame.contentWindow.document.body.innerHTML)
}
}
您的12个其他问题中只有一个得到了可接受的答案?