【问题标题】:Button to add an input box and accessing collections of inputs in controllers?添加输入框并访问控制器中的输入集合的按钮?
【发布时间】:2014-01-09 03:26:47
【问题描述】:

我是表单菜鸟,想知道如何创建一个文本输入框集合,以及一个允许用户向该集合添加另一个输入的按钮。

这可以纯粹用 ruby​​ 和 rails 完成吗?如果是这样,在控制器中执行操作时如何访问组中的各个输入?我如何识别每个?我如何知道集合的大小/有多少输入?

任何帮助将不胜感激,谢谢!

【问题讨论】:

  • 解决方案能否包含jQuery js库?
  • 使用 jQuery 可以很容易地解决这个问题。
  • 我想这是很标准的吧?虽然我不懂 JS,但欢迎任何解决方案。

标签: javascript ruby-on-rails forms frontend inputbox


【解决方案1】:

前端部分的一个简单的、无样式的示例:

HTML:

<input type="button" id="addBtn" value="Add"/>
<div id='inputs'>
</div>

带有 jQ​​uery 的 Javascript:

var nextId = 0;

$("#addBtn").on("click",function(){
    $("#inputs").append("<input type='text' id='text_"+nextId+"'/>");
    nextId++;
});

输入具有唯一的、连续的 ID。在任何给定时间,计数都可以从nextId$(".dynInput").length 获得

http://jsfiddle.net/5mHTh/1/

【讨论】:

  • 我的控制器可以查看这些值吗?
  • 另外,我知道这可能是我可以在其他地方找到的东西,但是谁能告诉我我把这个 js 放在哪里?在 html 的标签中?
  • 很抱歉给你一些问题,但我需要一个 JS 发布/获取请求来传递 JS 变量吗?具体来说,我需要 nextId,然后我可以访问 params 哈希中的值。
  • 你也许可以不用它——Rails 不能根据命名模式迭代参数吗?获取所有 text_* 输入? (我从来没有使用过 Rails,所以我没有帮助)。但是,如果做不到这一点,您可以将其保存在隐藏的输入中,而不是将计数保存在 JS 变量中,因此它包含在提交的参数中。
  • 隐藏的输入听起来应该可以工作。谢谢!
猜你喜欢
  • 2015-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多