首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多个表单提交失败

多个表单提交失败
EN

Stack Overflow用户
提问于 2012-01-25 19:18:12
回答 1查看 89关注 0票数 0

有人能帮帮我吗?我有一个类似的问题的答复,但无法解决我的问题,所以我试图在这里尽可能详细。抱歉,如果这是重复,但我真的需要在这方面的帮助。

我试图通过鼠标悬停事件将三个表单提交到同一个asp页面。asp页根据提交的表单及其包含的数据执行保存图像的代码。我已经尝试了几种方法来做到这一点。如下所示依次提交将导致创建部分或全部图像,但这是随机的,并且后续提交似乎覆盖了之前的调用。

代码语言:javascript
运行
复制
function save_all_des(){
    document.getElementById("form_zoom1").submit();
    document.getElementById("form_zoom2").submit();
    document.getElementById("form_zoom3").submit();
}

我也尝试过这样使用jquery:

代码语言:javascript
运行
复制
$("#create_image").mouseover(function() {
    $("#form_zoom1").submit(function() {
    $("#form_zoom2").submit(function() {
    $("#form_zoom3").submit();
    });
    });
});

这根本不起作用,即使我只尝试一种形式。( mouseover事件本身可以触发。)

这三个表单具有相同的输入名称(我只显示了一个),但具有不同的值。他们单独提交ok。

代码语言:javascript
运行
复制
<form id="form_zoom1" name="form_zoom1"  action="abc.asp" target="MyFrame">
    <input type="hidden" name="tab" value="1">
</form>
<form id="form_zoom2" name="form_zoom2"  action="abc.asp" target="MyFrame2">
    <input type="hidden" name="tab" value="2">
</form>
<form id="form_zoom3" name="form_zoom3"  action="abc.asp" target="MyFrame3">
    <input type="hidden" name="tab" value="3">
</form>

<iframe id="MyFrame" name="MyFrame" style="display:none;"></iframe>
<iframe id="MyFrame2" name="MyFrame2" style="display:none;"></iframe>
<iframe id="MyFrame3" name="MyFrame3" style="display:none;"></iframe>

如何确保一个表单提交后的代码在提交第二个表单之前完成,然后提交第三个表单?

感谢您的帮助。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-25 19:38:08

听起来您最好使用AJAX向服务器发送POST请求,而不是实际提交表单。您可以同时发送这三个请求,并使其正常工作,但这取决于您在提交之后如何处理来自服务器的响应。

查看jQuery Documentation,了解有关使用它执行AJAX调用的更多信息。

示例代码可能如下所示:

代码语言:javascript
运行
复制
function submitForm(form) {
    $.ajax({
        url: 'abc.asp',
        method: 'post',
        data: {
            tab : $('input[name="tab"]',form).val()
        },
        success: function(data) {
            /* handle the response from the server here
            if you don't need to do anything to the structure of the page, you can probably just leave this blank
            may want to put in some console.log or alert statements for debugging purposes
            */
        }
    });
}

$('#create_image').mouseover(function() {
    submitForm($('#form_zoom1'));
    submitForm($('#form_zoom2'));
    submitForm($('#form_zoom3'));
});

请注意,这将发送三个AJAX POST请求,每个表单一个请求,时间大致相同。不能保证它们将按此顺序完成(尽管考虑到您提供的信息,这似乎并不重要)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9001813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档