【问题标题】:Capture ID from a link click and pass it into a popup form从链接单击中捕获 ID 并将其传递到弹出表单中
【发布时间】:2017-06-16 05:09:53
【问题描述】:

我有三个链接,它们都具有相同的类但不同的 ID。单击带有类名的链接时,用户会看到一个弹出表单。我试图做的是从点击中捕获个人 ID,并将其作为隐藏字段传递到表单中。

<div id="IA"><a class="addProdClick">Get a Quote</a></div>
<div id="MP"><a class="addProdClick">Get a Quote</a></div>
<div id="GS"><a class="addProdClick">Get a Quote</a></div>

我希望能够在捕获后将值添加到弹出表单中的以下隐藏字段:

/*======== This is the popup form which is show to the user when they click the "Get a Quote." ========*/
<form id="addProdGateway" action="" method="post">
<input type="hidden" readonly="readonly" id="product" name="product" value="">
</form>

根据表单上的 ID,用户将被重定向到正确的站点。我已经构建了 js 的后半部分,但似乎无法弄清楚如何在提交之前捕获该 ID 并将其传递到表单中。

我已经在下面建立了验证和处理:

jQuery(document).on('submit','#addProdGateway',function(e) {
    e.preventDefault();
    validationAddProdGateway();

    /*======== AJAX to submit a Pardot Form Handler ========*/
}

function validationAddProdGateway()
{
    var x = 0;
    var theForm = document.forms["addProdGateway"];
    var email = theForm.elements["email"].value;
    var source = theForm.elements["source"].value;
    var product = theForm.elements["product"].value;
    var url;

    if (product = "IA")
    {
        url = "https://www.ia.com"
    }
    else if (product = "MP")
    {
        url = "https://www.mp.com"
    }
    else if (product = "GS")
    {
        url = "https://www.gs.com"
    }

    /*======== Form Validation ========*/

    window.location.href = url;
}

【问题讨论】:

    标签: javascript forms parameter-passing


    【解决方案1】:

    下面的 sn-p 展示了如何使用 jQuery 获取被点击元素的父 ID:

    $('.addProdClick').click(function(el) {
      $('#product').val($(this).parent().attr('id'));  
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div id="IA"><a class="addProdClick">Get a Quote</a></div>
    <div id="MP"><a class="addProdClick">Get a Quote</a></div>
    <div id="GS"><a class="addProdClick">Get a Quote</a></div>
    
    <input type="hidden" readonly="readonly" id="product" name="product" value="">

    【讨论】:

    • 在控制台日志中,如何将其拉入弹出表单的隐藏字段?
    • 我尝试过类似的代码sn-p,但不成功。我无法弄清楚的问题是如何将 id 存储在隐藏的表单字段中。得到它不是问题,我只是不知道以后如何处理。
    • 如果您使用您的开发工具检查上面的 sn-p,您应该会看到当您单击任何链接时隐藏输入字段的值如何变化。如果您无法在自己的设置中使用它,也许您可​​以在小提琴或类似的情况下分享您的问题的重现?
    • 我主要解决的问题是,当用户单击按钮时,表单以及隐藏字段不会出现在屏幕上。该按钮激活了弹出表单,因此基本上,上面的代码试图为它找不到的 ID 分配一个值,然后弹出带有该 ID 的表单。
    • 我明白了。您可以添加负责打开问题的弹出窗口的代码吗?也许您可以将选定的 ID 向下传递并在创建表单后将其填充到隐藏的输入中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 2017-12-07
    • 2018-11-08
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多