Rails:如何创建一个添加更多按钮,该按钮使用 jquery 以 erb 形式添加一些文本字段

Posted

技术标签:

【中文标题】Rails:如何创建一个添加更多按钮,该按钮使用 jquery 以 erb 形式添加一些文本字段【英文标题】:Rails: How to create a Add more button which add some textfield in erb form with jquery 【发布时间】:2020-11-10 14:15:59 【问题描述】:

我正在创建一个表单,其中 quote_amounts 包含哈希。我想创建一个带有按钮的表单,当我点击按钮时,新的一组文本字段会打开

例如: 当表单打开时,应该有一个 2 个文本字段:标签和金额,以及当我向它发送数据时 参数应该是"quote_amounts"=> ["label"=> "website", "amount"=> 1000]

当我点击添加更多按钮时,应该打开一组 2 个新文本字段,然后我填充数据,然后参数应该是

"quote_amounts"=> ["label"=> "website", "amount"=> 1000, "label"=> "website1", "amount"=> 11000]

如果我添加更多文本字段,则相同。

quote_amounts 是一个 jsonb 字段

请帮我解决这个问题,卡了 2 天。

【问题讨论】:

【参考方案1】:

您可能必须使用 javascript 或 jquery 来添加动态输入,然后必须使用 ajax 提交。我创建了一个简单的场景来查看您的问题。希望这对你有用。

您可以将其添加到您的 erb 文件中。

在您的控制器中,您必须定义一个操作方法来处理要返回的 format.json,以便您可以在 ajax 中获得成功或错误的响应。

希望您现在能够解决问题。

function addMore()
    $("#dynamic-inputs").append($("#original-inputs").html())
  

  function submiForm() 
    let data = []
    $("[name='label']").each((i, item)=>
    
      data.push('label': item.value, 'amount':  $("[name='amount']")[i].value)
    )
    console.log('quote_amounts': data)
    $.ajax(
        url: 'urlOfYourActionController',
        data: 'quote_amounts': data,
        type: 'POST',
        success: function(data)
            // handle your success here
            console.log(data);
        
    );
  
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id="original-inputs">
  <label>Label</label>
  <input name='label' />
  <label>Amount</label>
  <input name='amount' />
  <br/>
</div>

<div id="dynamic-inputs"></div>

<button type='button' onclick="addMore()">Add More (+)</button>
<button id='sendRequest' onclick='submiForm()'>submit</button>

【讨论】:

我可以在视图文件中添加它吗?我有非常相似的问题 是的,您可以将其添加到您的视图文件中。您可以在同一个视图文件中添加 js,但您应该在资产管道文件 application.js 或任何其他文件中添加 js。【参考方案2】:

您可以尝试在ajax 的帮助下添加这些附加字段。例如。该按钮将异步地在表单中附加新字段。

更多信息using JavaScript with rails

【讨论】:

以上是关于Rails:如何创建一个添加更多按钮,该按钮使用 jquery 以 erb 形式添加一些文本字段的主要内容,如果未能解决你的问题,请参考以下文章

Rails - 当用户单击提交按钮时如何更新表中的数据

[rails创建页面从

如何在rails中正确使用单选按钮?

滚动时如何向 UITableViewCell 添加更多按钮?

如何将“更多”按钮添加到标签栏?

如何在 UIScrollView 的末尾添加一个按钮以加载更多?