javascript - 如何在新页面加载后提交CFform并更改其action属性?

标签 javascript html coldfusion-9

我正在尝试使用 cfform,用户可以在不同的网站上输入和搜索某些结果,这需要登录才能访问所需的结果。 另一个网站将在弹出窗口或新页面中打开,用户凭据已登录,并将显示用户之前在 cfform 或另一个 cfform 或表单中输入的结果,我不确定应该如何完成。基本上,我想提供一种在与我的网站不同的网站中搜索结果的快速方法,同时跳过包含结果的网站的用户的登录过程。

到目前为止,我有一个工作 cfform,可以打开 www.somewebsite.com,用户已经登录,如下所示

<cfform action="https://www.somewebsite.com/login.php" method="post" id="ud_form">
     <cfinput type="hidden" name="email" value="#email#" />   
     <cfinput type="hidden" name="password" value="#password#" />
     <cfinput type="hidden" name="source" value="#source#"  />
</cfform>

<script type="text/javascript">
     document.getElementById('ud_form').submit();
</script>

我遇到的问题是我没有找到在登录过程完成后更改操作属性的方法。例如,一旦登录发生,cfform操作属性应该设置为新的url + cfform的输入值(https://www.somewebsite.com/cp.php?addr=“+form_address+”&unit=”+form_unit),然后提交。我已经做了很多研究了一下,没有找到解决办法。

我尝试在上面的 cfform 中包含 cfinput 标签,并使用一个 javascript 函数,该函数将在提交表单后触发操作属性更改。但是按下提交按钮无法触发任何操作,并且不会在控制台中报告任何脚本错误。我使用的代码如下所示。

<cfform action="https://www.somewebsite.com/login.php" method="post" id="ud_form" onSuccess="show_results();">
        <cfinput type="hidden" name="email" value="#email#" />
        <cfinput type="hidden" name="password" value="#password#" />  
        <cfinput type="hidden" name="source" value="#source#"  />
        Address: <input id="address" type="Text" name="address" placeholder="Enter an Address" size=40><br/><br/>
        Unit #: <input id="unit" type="Text" name="unit" placeholder="Enter Unit" size=40><br/><br/>
        <input id="submit" type="button" value="Search">       
</cfform>



<script type="text/javascript">

       $("#submit").click(function(){                                                    

              $("#ud_form").submit();
       });

       function show_results()
       {
              var form_address =$("#address").val();
              form_address = form_address.split(' ').join('+');
              var form_unit = $("#unit").val();
              form_unit =form_unit.split(' ').join('+');
              var url = "https://www.somewebsite.com/cp.php?addr="+form_address+"&unit="+form_unit;                                               
              $('#ud_form').attr('action',url);                                                                          
              $("#ud_form").submit();
       }

非常感谢任何帮助或建议!

最佳答案

一旦您提交该 HTML 表单,在这种情况下,浏览器就会离开您的代码 - 它将开始与 somewebsite.com 交互

我认为您想要做的是将表单提交给自己并获取表单字段并使用它们对 www.somewebsite.com 执行 CFHTTP,然后使用返回的结果填充页面/对话框/pop-使用您刚刚获取的数据。

否则,您只是将用户引导至该辅助站点,然后将他们从您的站点引导出去。

关于javascript - 如何在新页面加载后提交CFform并更改其action属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34829232/

相关文章:

javascript - 如何在对象的另一个键中使用一个键的值?

javascript - JavaScript 中的基本时间和日期操作

Javascript 全局变量被设置为新值

Coldfusion 对象 v10 与 v9

java - 如何解决 ColdFusion 9 中的死锁问题 : coldfusion. util.AbstractCache$Lock

javascript - ES6 类属性文档

HTML 电子邮件 CSS : Centering the table and table content, 最受支持的解决方案

html - 从 psd 文件创建主题的一些 CSS 问题

javascript - 如何在用户向下滚动到内容时加载内容?

coldfusion - CFQueryParam 对值进行四舍五入