Rails 通过弹出窗口发送电子邮件

我创建了一个表单,它有一个字段,onclick() 导致打开一个弹出窗口(邀请进口商)。

在这个弹出窗口中,客户必须输入某些信息,当输入时,我希望保存所有信息并使用输入的电子邮件触发电子邮件。所有这一切都应该在我点击提交时发生(在下图中显示为“Speichern”)。

我该怎么做?

我想过创建 2 个表单。一个弹出窗口和另一个基础,但提交按钮会导致它们都被提交。

你如何在没有提交其他表单的情况下保存和提交带有弹出窗口的电子邮件。

弹出来发送电子邮件

乔纳森·班尼特

确保第二个表单的 html 不在主表单内。那会引起问题。您可能还希望模态表单能够remote: true通过 AJAX 提交。代替:

<%= form_for @model do |form| %>
  ...
  <%= form.text_field :foo, onclick: 'openEmailModal()' %>

  <div class="modal etc" id="email-modal">
    <%= form_for @email do |form2| %>
        ...
    <% end %>
  </div>
<% end %>

你将会拥有:

<%= form_for @model do |form| %>
  ...
  <%= form.text_field :foo, onclick: 'openEmailModal()' %>
<% end %>

<div class="modal hide etc" id="email-modal">
    <%= form_for @email, remote: true do |form| %>
        ...
    <% end %>
</div>

在您的视图中,您可以创建一个名为 create.js.erb 的文件,例如,它会执行以下操作:

closeEmailModal(); // this is just straight javascript
$('#notices').html("<%= escape_javascript(render 'my_partial') %>"); // reuse html your partials in JS
$('#notices').html("<%= j(render 'my_partial') %>"); // or use j (it's an alias for escape_javascript)
alert('I did stuff!');

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Rails通过GET发送电子邮件

动作邮件程序-使用Ruby on Rails通过联系表单发送电子邮件

Rails 5 联系我表单不通过 heroku 使用 sendgrid 发送电子邮件

安排在Rails中发送电子邮件

Rails 4在“测试”环境中发送电子邮件

Rails 重新发送电子邮件激活

Rails应用程序不发送电子邮件

使用Shoppe gem + Rails发送电子邮件

Rails 联系表不发送电子邮件

在概念验证Rails应用中发送电子邮件

Rails 测试根据请求规范发送电子邮件

如果用Rails ActionMailer清空电子邮件,如何不发送电子邮件

在Rails中发送电子邮件后存储邮件程序类和方法

升级到Rails 5.0.6后,邮件gem不发送电子邮件

在Rails中使用发送网格批量发送电子邮件

仅在产品中发送电子邮件,而在Rails开发中则不发送

Rails Mailer将URL设置为已发送电子邮件中的对象

Rails 4向其他用户发送电子邮件

Rails 4.2-Sidekiq在开发中不发送电子邮件

Rails Action Mailer并返回状态200(如果已发送电子邮件)

Rails 4 ActionMailer在开发模式下不发送电子邮件

Rails:为什么在用户提交表单之前先发送电子邮件?

使用Rails App在Amazon EC2中发送电子邮件问题

从Rails应用发送电子邮件时,Net :: SMTPAuthenticationError错误(在暂存环境中)

具有Devise的Rails仅允许学校发送电子邮件

Ruby on Rails的Cloud9不发送电子邮件

Rails设计在开发中不发送电子邮件确认

使用Sendgrid Rails Heroku发送电子邮件时,如何获取或访问不同的模型属性

发送电子邮件时,Rails 5 mailer Net :: SMTPFatalError