【问题标题】:Form select option to change what gets rendered表单选择选项以更改呈现的内容
【发布时间】:2014-04-21 18:12:17
【问题描述】:

带有下拉选择的 Ruby on Rails 4 表单。如果选择了多项选择,我想呈现一个页面。如果选择了 True/False,我想渲染一个不同的页面。

我不知道为什么这不起作用,我的 javascript 知识很差:

<h1>New question</h1>

<%= form_for(@question) do |f| %>

<%= render 'shared/error_questions' %>

<%= render 'form', f: f %>

<%= f.fields_for :answers do |builder| %>
<div id="mcanswers" style="display:none">
<h1>Answers</h1>
<%= render 'four_answers', :f => builder %>
<%= f.submit "Create Question", class: "btn btn-lg btn-primary" %>
</div>

<div id="tfanswers" style="display:none">
<h1>Answers</h1>
<%= render 'tf_answers', :f => builder %>
<%= f.submit "Create Question", class: "btn btn-lg btn-primary" %>
</div>
  <% end %>

<% end %>

<hr />

<%= link_to 'Back', questions_path %>

<script>

function checkType() {
    if ($('#question_question_type').val('MC'))
    {
        $('#mcanswers').css('display', 'block');
    }
    else if ($('#question_question_type').val('TF'))
    {
        $('#tfanswers').css('display', 'block');
    }
}

$(document).ready(function() {

$('select#question_question_type').on('change', function() {
    checkType();
});
});

</script>

【问题讨论】:

  • 什么不起作用?它在做什么而不是你所期望的?
  • 它不显示或隐藏 div。我得到,第 1 行的输入意外结束
  • 我什么都没有,也许你应该尝试制作一个 jsfiddle,尽管需要注意的一件事是我不相信 .val() 像你期望的那样工作?

标签: javascript jquery ruby-on-rails


【解决方案1】:

一切都是从头开始渲染的。 div 只是隐藏它。我必须使用控制器逻辑来决定何时渲染。

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 2020-11-25
    • 1970-01-01
    相关资源
    最近更新 更多