【问题标题】:Popup / modal when submitting a form, depending on what information has been entered into the form提交表单时弹出/模态,取决于表单中输入了什么信息
【发布时间】:2019-02-11 13:08:10
【问题描述】:

我正在寻找有关在 Ruby/Rails 中提交表单时实现弹出/模式的最佳方法的建议。

我有一个简单的表单,带有一个提交按钮,可以按预期工作(更新数据库中的相关字段)。

我得到了额外的要求:根据输入到表单中的信息,提交表单时应该有一个模式/弹出窗口。以下是对此不同要求的概述:

  1. 当某些字段被更新但信息与之前的更新冲突时(例如,一个日期字段被更新,但之前已经设置了不同的日期),会出现一个错误的弹出/模式,并且单击“确定”时将返回到任何输入仍然存在的表单(即不刷新表单)。三种不同的场景具有三种不同的错误类型,因此需要三种不同的错误消息。

  2. 当某些字段已更新但其他字段留空时,会弹出一个带有“您确定吗?”的弹出窗口/模式。将出现类型消息。同样存在三种不同的场景,因此需要三种不同的消息。将有取消和确定按钮:取消将返回表单,任何输入仍然存在,确定将提交表单。

  3. 最后,如果表单更新没有问题(即以上都不是真的),那么表单将在没有弹出/模式的情况下提交(即标准表单提交)。

    李>

我已经研究过创建模式,但由于我有七种不同的场景/要求,我正在努力寻找一种合适的方式来实现它。首先想到的是会有很多 if 语句,但我觉得必须有更有效的方法来做到这一点。我看过的代码中有几个模式(在我接管项目之前完成),它们使用 button_tag,但我不知道我是否想在表单中使用相同的格式。

【问题讨论】:

  • 大量文档可供阅读。

标签: ruby-on-rails ruby forms modal-dialog popup


【解决方案1】:

对于第一个场景,您可以考虑在 ActiveRecord 模型https://guides.rubyonrails.org/active_record_validations.html#custom-methods 上实现自己的验证。表单数据通过 AJAX 提交,检查您的 JSON 响应是否有任何错误,如果有错误,则显示带有错误的模式。

对于第二种情况,我会添加客户端验证。提交表单时让您的 JS 检查字段,如果它们为空,请显示“您确定吗?”模态的。如果他们点击“是”,那么我们会转到方案一,检查是否有任何错误。

最后,如果表单提交成功,通过JS清空所有字段并显示成功信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-21
    • 1970-01-01
    • 2020-11-05
    相关资源
    最近更新 更多