【问题标题】:attach form to javascript event without initially knowing the formid在最初不知道表单的情况下将表单附加到 javascript 事件
【发布时间】:2015-12-16 10:38:56
【问题描述】:

我目前有一个页面,其中包含 2 个表单和一个附加到这两个表单的 jquery 函数,提交后我获取提交表单的 id(这两个表单之一)并执行一些服务器操作,然后使用结果通过脚本在同一页面中创建许多表单,用户可以单击这些表单提交并添加到他们的个人资料中。关键是我想在发布后使​​用一些数据库数据在这些表单中的 div 中添加成功消息。我必须在页面上放置一个新的 javascript / jquery 函数问题是:如何将这个新函数附加到新创建的表单而不是页面中静态存在的两个表单?我正在使用一些技巧在这些新表单中生成唯一的表单 id,例如 form id ="form123" 或 "form342" 等。关键是在点击提交之前我需要这个 id。

【问题讨论】:

    标签: jquery html forms post submit


    【解决方案1】:

    你可以给你所有的动态表单一个不被你的静态表单共享的类,即dynamic-form

    然后使用 JQuery on 事件将特定函数附加到所有动态表单,甚至在它们被添加到页面之前。如果您走这条路,那么您需要在创建动态表单时将成功消息的数据添加到动态表单的隐藏元素中,并使用load 事件。

    $("body").on("load", ".dynamic-form", function () {
        var successMessage = $(this).find([class of hidden success message]).first().val();
        showSuccessMessage(this, successMessage);
    });
    

    【讨论】:

    • hmm 好的,但是如何防止页面导航到帖子的 url 并显示空白页面?我需要提交一个动态表单并留在页面中。
    【解决方案2】:

    创建 jquery 单个参数化函数并通过从提交按钮调用函数来传递该参数中的 id

    onclick="submitFunc($(this).closest('form').attr('id'))" 
    

    【讨论】:

    • 虽然这段代码可以回答这个问题,但最好解释一下它的作用并添加一些参考。
    • 参数应该是什么?我不清楚……“形式”? @ELGavilan
    猜你喜欢
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    • 2013-06-23
    • 2021-01-31
    • 2012-07-08
    • 1970-01-01
    • 2017-09-09
    • 2022-12-29
    相关资源
    最近更新 更多