【问题标题】:Infinite loop when calling form submit() from jQuery从jQuery调用表单提交()时的无限循环
【发布时间】:2019-02-15 02:36:25
【问题描述】:

我已经自定义了登录页面,以便它将从 URL 参数中填写用户名和密码,请参阅here。 它工作正常,但我希望它自动登录用户(提交表单)。但它变成了一个无限循环。

到目前为止,这是我的代码。它采用类.woocommerce-form的形式

jQuery(document).ready(function($) {
    var r = /([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)/g; //matches second part email
    var email = r.exec(window.location.href)[0];  //gets the email from url
    if (email){
        $("input[name=username]").val(email);
        $("input[name=password]").val(email);
        $(".woocommerce-form").unbind().submit(); //INFINITE LOOP
    }       
});

我尝试将.unbind() 添加到.submit() 以防止再次加载代码,但它不起作用。

感谢任何帮助

【问题讨论】:

  • 使用调试器看看它在做什么。

标签: javascript jquery wordpress woocommerce


【解决方案1】:

我已经调试了你的代码。问题是你没有在你的表单中提到动作属性。所以当你提交它时会重新加载相同的页面。在表单中添加动作属性。示例:-

<form action="/action_page" method="get">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  <input type="submit" value="Submit">
</form>

【讨论】:

  • 感谢您的回复。嗯.. 表单的正常行为来自 WooCommerce,因此操作逻辑可能来自其他地方,因为当物理单击登录(提交)按钮时(当我的 $(".woocommerce-form").unbind().submit(); 未使用时,表单按预期工作) . 还有更多信息吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-26
  • 1970-01-01
相关资源
最近更新 更多