当我将网站托管在静态页面上时,我正在使用Formspree-https://formspree.io/将表单重定向到我的电子邮件。

我还使用外部库Toastr(http://codeseven.github.io/toastr/)在用户单击表单的“提交”按钮后显示一条小通知。

问题是我无法让Formspree和Toastr同时运行。当我同时实现这两个功能时,所有功能都不起作用。

代码:(请说出是否需要添加更多内容以使问题更清楚)。

<form action="http://formspree.io/emailhere" method="POST">
       <div>
         <div class="row">
          <div class="6u 12u(mobile)">
         <input type="text" name="name" id="name" placeholder="Name" />
            </div>
               <div class="6u 12u(mobile)">
                  <input type="email" name="_replyto" id="email" placeholder="Your Email" />
             </div>
               </div>
              <div class="row">
                <div class="12u">
                 <input type="text" name="subject" id="subject" placeholder="Subject" />
                   </div>
                </div>
                 <div class="row">
                    <div class="12u">
                    <textarea name="message" id="message" placeholder="Message"></textarea>
                 </div>
              </div>
           <div class="row 200%">
            <div class="12u">
          <ul class="actions"> //Pressing submit redirects to a 'thank you' page
   <li> <input name="submit" type="submit" value="Send" id="submit"/> </li>
  <li> <input type="reset" value="Clear Form" class="alt" />  </li>
        </ul>
          </div>
           </div>
              </div>
                </form>


现在,当您按下提交按钮时,它会将您重定向到Formspring谢谢页面。当我为敬酒通知添加Javascript时,它甚至都没有这样做,这意味着JavaScript以某种方式“破坏”了提交按钮的功能。

     $(document).on('click', '#submit', function(evt){
    evt.preventDefault();
    toastr.success('Thanks for the email, will be in touch promptly.');
});


感谢您的光临。

编辑:所以我想要这样,以便他们两个一起工作。这是HTML的代码,您可以在按下“提交”按钮后选择重定向页面:

<input type="hidden" name="_next" value="//site.io/thanks.html" />


我想要它,所以它不会重定向到任何地方,但是会执行我的JS函数通知。

最佳答案

您正在防止点击处理程序中的默认行为(重定向到表单URL)。只需删除

evt.preventDefault();


并且它应该可以工作(尽管显然,由于您的页面已被重定向,因此Toastr弹出窗口将不可见)。

如果希望它在新选项卡中打开,则应避免默认行为(如您当前所做的那样),然后阻止open the URL manually

关于javascript - Formspree(HTML)和JavaScript无法同时使用。 (Toastr库),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32531426/

10-11 12:04