【问题标题】:CheckBox_Tag in RailsRails 中的 CheckBox_Tag
【发布时间】:2019-07-12 14:41:30
【问题描述】:

我正在使用 rails 3.1 和 ruby​​ 1.9.2。使用 checkbox_tag 我希望当我单击复选框时,将一个变量(例如@post)设置为 true,然后将其传递给控制器​​。我该怎么做?

【问题讨论】:

  • 你的意思是异步(没有页面刷新)?这称为 AJAX,可帮助您进行 Google 搜索。

标签: ruby-on-rails checkbox


【解决方案1】:

以下是使用 ajax 从视图中实时编辑/保存的 jquery 和视图代码示例:

在 application.js 中:

 jQuery('#tranx_field').live('change', function() {
    var attr_value = $(this).val();
    var attr_name =  $(this).next("input[id=attr_name]").val();
    var tranx_id = $(this).parent().parent().parent().children("input[id=tranx_id]").val();

    $.ajax({
        url: "/tranxes/" + tranx_id,
        dataType: "json",
        type: "PUT",
        processData: false,
        contentType: "application/json",
        data: "{\"tranx\":{\"" + attr_name + "\":\"" + attr_value + "\"}}"
    });
 });

以及查看代码:

<%= hidden_field_tag 'tranx_id', @tranx.id %>
    <div class="row">
      <div class="span6 id="left_col">
            <b>Salesrep:</b>
                <%= text_field_tag 'tranx_field', @tranx.salesrep,:class => "itemfieldsm" %>
                <%= hidden_field_tag 'attr_name', "salesrep" %>
            <br>

【讨论】:

    【解决方案2】:

    在视图中您可以添加以下内容

    hidden_field_tag 'post', false
    check_box_tag 'post', true
    

    在提交表单时在控制器中分配它:

    @post = params[:post]

    隐藏值只是设置默认值,如果选中复选框,则会被覆盖

    【讨论】:

    • 另一个问题:'post'只有在check_box点击右键时才设置为true?
    猜你喜欢
    • 2013-01-24
    • 1970-01-01
    • 2017-09-30
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多