【问题标题】:In rails, can you break up a single text_field into parts?在 Rails 中,您可以将单个 text_field 分解为多个部分吗?
【发布时间】:2011-09-16 19:28:47
【问题描述】:

我想取一个信用卡号,比如 :number 并将其分解为 4 个文本字段,如果放入的卡是 Amex,则这些文本字段会使用 JS 更新为 3 个文本字段。

我认为我可以做到

<%= fields_for :number do |c| %>
  <%= c.text_field 'cnumber1'>
  <%= c.text_field 'cnumber2'%>
  <%= c.text_field 'cnumber3'%>
  <%= c.text_field 'cnumber4'%> 
<% end %>

但这不起作用。我知道我可以设置 html 输入标签,然后在控制器端进行更改,但对于这种特殊情况,我想在视图中完成所有操作,因为它是到另一台服务器的透明帖子。

现在我只是好奇。分解日期输入并将所有日期对象也分成单独的 text_fields 会很酷。

【问题讨论】:

    标签: ruby-on-rails forms credit-card textinput


    【解决方案1】:

    你绝对可以这样做:

    • 在你的模型中创建attr_accessors

    • 将它们添加到表单中

    • before_save 回调中,以您希望的方式从它们那里获取值

    【讨论】:

    • 如果我在发布数据时可以访问这些数据,这绝对是个好主意。但它会透明地发送到另一台服务器,所以我必须将它作为他们期望的对象发送,对吗?
    • 好吧,如果您不使用服务器上的数据,您的表单可以使用原始 html 或 form_tag 助手完成,这里无需考虑 Rails 模型。否则,您可以保留 attr_accessors 并在提交表单时将它们与 js 合并。
    • 一般来说,考虑接受一些答案。这很公平。
    • 但是我的问题没有得到解答。我尝试直接使用 html 并通过 javascript 提交表单,但它存在严重的跨平台问题。也许我应该问另一个问题
    【解决方案2】:

    我相信您必须通过四个字段来解决您的问题,但是,就日期而言,您可以使用 form.date_select 助手,它将您的日期分成三个字段(日、月、年)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-13
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      相关资源
      最近更新 更多