如何覆盖javascript表单小部件的属性

如何覆盖javascript表单小部件的属性,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在尝试覆盖页面上现有javascript表单小部件中的2个属性,但不太确定如何操作: 我想在提交表单时重定向到其他URL 在提交表单时,我需要将id='prospects\u Reference\u type'的数据点推送到终端系统 以下是表单小部件当前所在的网站: 这是小部件的脚本: <script src="https://widgets.healcode.com/javascripts/healcode.js" type="text/javascript"></scr

我正在尝试覆盖页面上现有javascript表单小部件中的2个属性,但不太确定如何操作:

  • 我想在提交表单时重定向到其他URL
  • 在提交表单时,我需要将id='prospects\u Reference\u type'的数据点推送到终端系统
  • 以下是表单小部件当前所在的网站:

    这是小部件的脚本:

    <script src="https://widgets.healcode.com/javascripts/healcode.js" type="text/javascript"></script>
    
    <healcode-widget data-type="prospects" data-widget-partner="object" data-widget-id="8423870a150" data-widget-version="0"></healcode-widget>
    
    
    
    下面是使用Tamb代码的完整实现的简化版本,但仍然无法使重定向正常工作:

    <html>
    <head>
    <meta charset="utf-8">
    
    <script> 
    $('healcode-widget').submit((e)=>{
      e.preventDefault();
      myAjaxPost();
    
    window.location.replace("https://jabzboxing.fitness/thankyou");
    
    })
    </script>
    
    </head>
    <body>
    
    <script src="https://widgets.healcode.com/javascripts/healcode.js" type="text/javascript"></script>
    
    <healcode-widget data-type="prospects" data-widget-partner="object" data-widget-id="8423870a150" data-widget-version="0"></healcode-widget>
    
    </body>
    </html>
    
    
    $('healcode-widget')。提交((e)=>{
    e、 预防默认值();
    myAjaxPost();
    window.location.replace(“https://jabzboxing.fitness/thankyou");
    })
    
    我想这就是你想要的

    要更新表单的发布位置,请执行以下操作:

    jQuery('form[id^=prospect_form').attr('action', 'http://stackoverflow.com')
    
    要添加其他字段,请执行以下操作:

    jQuery('form[id^=prospect_form').append('<input id="prospects_referral_type" type="hidden"/>')
    
    jQuery('form[id^=prospect\u form')。追加(“”)
    

    请记住,此代码必须在加载表单后运行,但不必在提交时运行。

    因此有很多方法可以做到这一点:

    客户端:

    通过AJAX提交表单(注意:也有很多方法可以做到这一点)。找出您希望支持的最旧浏览器。如果jQuery还可以,请使用他们的AJAX方法,并在表单提交时提交到相应的端点

    $('form').submit((e)=>{
      e.preventDefault();
      myAjaxPost();
    
    //on the .success method of the ajax POST you can simply do one of these
    
    // similar behavior as an HTTP redirect
    window.location.replace("http://stackoverflow.com");
    
    // similar behavior as clicking on a link
    window.location.href = "http://stackoverflow.com";
    
    })
    
    服务器端:


    在后端处理帖子,并在成功后简单地重新路由。考虑到您的后端可以是.NET、Node、PHP.Idk,这可以采用多种形式。

    在您的初始页面表单之后,网站似乎会将您带到一个签出过程。您是说要绕过购物车,将它们带到其他地方吗?正确!我正在寻找重发ct转到另一个感谢页面。您希望路由(重定向)是客户端还是服务器端?我来试一试!要在表单加载后运行代码,可以设置setTimeout()吗在那里调用,那会是什么样子?加载小部件的代码是什么?你可以使用回调。我可以访问的与小部件相关的所有内容都在原始帖子的脚本中。不幸的是,我无法修改原始的.js文件。从那里,它将使用内嵌HTML放入网页。我希望这是正确的你在问。嗨,Jennifer。我似乎无法让代码正常工作,我很确定这是因为脚本与表单同时加载。有什么想法吗?Tamb建议的应该有效,因为脚本是在表单提交时运行的,这样可以确保表单的存在。谢谢。我将在我们讨论时尝试使用此方法ll.KMeyer25运气好吗?我还没有机会尝试这种方法,因为我目前正在研究另一种可能,它也可以解决我的数据推送问题。运气不好,所以我准备下一步探索这条路线。我已经在页面的页眉、正文和页脚(分别)尝试了您的脚本,但仍然没有运气。对可能出现的错误有什么想法吗?我感谢您的帮助!您可以发布代码的完整实现吗?您是否收到控制台错误?