Rails3/jquery/can我可以将其更改为提交一个答案,而不是整个表单



我很感谢那些帮助我在这里顺利完成诊断过程的人。我重写了代码,希望它能在jQuery的未来版本中继续使用。

不过,我担心两件事:

  1. 我有没有编码过其他东西会回来咬我的尾巴
  2. 相当多的客户完成了问题,关闭浏览器,然后期望他们的工作在他们回来完成比赛。所以整个形式是每次单选按钮时提交点击(100多条记录)。我想知道关于创建每个问题的表格没有收到任何回复。有一些吗一次提交一个答案的方式而不是整个形式

视图:

    <%= form_tag update_result_answers_path, :remote => true do %>
    <% @answers.each do |q| %>
        <tr>
            <td><%= q[0].question %></td>
            <% [ 1, 2, 3, 4, 5 ].each do |f| %>
                <% if f == q[1].score
                    chk="checked='checked'"
                else
                    chk=""
                end %>
                <td>
                    <input "<%= chk %>" class="submittable" name="answer[<%=q[1].id%>]" type="radio" value="<%= f %>" />
                </td>
            <% end %>
        </tr>
    <% end %>
    <% end %>

application.js:

$('.submittable').live('change', function() {
        $(this).parents('form:first').submit();
        return false;
        }
    );

控制器:

  def update_result
    params[:answer].each_pair do |key,value|
      @ans = Answer.find(key.to_i)
      @ans.update_attributes(:score => value)
    end
  end

_index.js.erb:

$("#answers").html("<%=escape_javascript(render(@answers)) %>");

谢谢!

我会保持您的视图不变,并更改application.js,使其尽可能不引人注目:

$('.submittable').live('change', function() {
  $.post(
    $(this).closest('form').attr('href'),
    $(this).serialize()
  );
});

编辑:我没看到你想在事后给出答案。我不确定如何使用此解决方案来避免代码重复。。。

相关内容

  • 没有找到相关文章

最新更新