【问题标题】:Rails: Foundation 5 Reveal Modal to Submit ButtonRails:Foundation 5 显示提交按钮的模式
【发布时间】:2015-06-23 17:20:41
【问题描述】:

我有一个表单,其中一半位于“Targeting”显示模式。例如,用户将填写表单中的某些字段,单击下一步(其中名为“Define Targeting”)按钮,其中弹出模式以完成表单。

当他们点击“完成”提交按钮时,我希望它保存并关闭模式并停留在主表单页面上。

我遇到的问题是,只要我有class: "close-reveal-modal",它就不会保存我的记录。删除后,它会保存记录,但它会保存,然后我就失去了关闭模式的能力。

这是提交按钮..

<%= f.submit "Done", class: "close-reveal-modal", remote: true %>

..和额外的 Javascript 来触发提交。

$(document).ready(function(){
    $(".close-reveal-modal").click(function(){

        var isSelected = $("#campaign_plan_id").val();

        if (isSelected.length > 0){
            $('form#new_campaign').trigger('submit.rails');
            $("#target-button").hide();
            $("#campaign-create-button").css("display", "block").css("background-color", "#E37368");
        }
    });
}) 

如果需要更明确的说明,请告诉我,我很乐意添加到帖子中。我正在通过这个过程学习 Zurb,而 Javascript 不一定是我的强项。

【问题讨论】:

    标签: javascript jquery ruby-on-rails ajax zurb-foundation


    【解决方案1】:

    将类名改为close-button,然后:

    $(document).ready(function(){
        $(".close-button").click(function(){
    
            var isSelected = $("#campaign_plan_id").val();
    
            if (isSelected.length > 0){
                $('form#new_campaign').trigger('submit.rails');
                $("#target-button").hide();
                $("#campaign-create-button").css("display", "block").css("background-color", "#E37368");
            }
    
            $(this).closest('[data-reveal]').foundation('reveal', 'close');
        });
    }) 
    

    【讨论】:

    • 谢谢!这是向前迈出的一步,但它没有保存在模式中选择的属性/字段,只有主页上的属性/字段。此外,它看起来不像 AJAX 正在工作,因为它将我发送到不完整保存记录的 #show 页面。我会尽快更新我上面的帖子。
    • @Shroy - 现在是你的主要问题。 :) Foundation 有一个好主意,将所有显示模态框移出它们在 DOM 中的初始位置——这意味着在你打开模态框的那一刻,它移动到正文的最底部,结果——移出你的表单。到目前为止我发现的唯一解决方法是复制模式的内容并在提交之前将其附加到表单中(自然是display: none
    • 做了一些工作,但我做了你提到的,现在它工作了!感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-23
    • 2023-03-10
    • 1970-01-01
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多