在rails视图中输入电话表单字段的掩码

时间:2013-07-27 05:49:32

标签: ruby-on-rails gem zurb-foundation input-mask

我的应用中有一个客户联系表单,当然需要输入电话。我正在运行Rails 3.2.13并使用Zurb Foundation。我希望找到一个宝石,提供一个输入掩码,形式为'(999)999-9999',我可以打电话。我的数据非常本地化,因此美国格式化的数字就是我所需要的。

我能够在该字段上执行验证,但希望将用户保持在输入掩码的更严格边界内。这就是我现在所拥有的。

  <div class="large-4 columns"><%= f.telephone_field :phone, :placeholder => "Phone - (123) 456-7890" %></div>

对此有什么好的宝石,或者你喜欢的jQuery插件?

干杯!

- 编辑 所以这里是我需要完成的完整答案。以防万一有人正在寻找快速解决方案。这是我的_form.html.erb视图文件中的代码:

<div class="large-2 columns">
   <%= f.text_field :phone, :id => "phone", :placeholder => "Primary Phone"%>
</div>

以下是我的assets / javascripts文件夹中我的咖啡文件中的代码:

$ ->
   $("#phone").mask("(999) 999-9999")

您需要从下面的@vinodadhikary链接中下载相应的jquery.maskedinput.js文件。然后你必须在application.js文件的依赖列表中的jquery文件下面的某个地方要求文件,如下所示:

//= require jquery
//= require jquery_ujs
//= require foundation
//= require jquery.maskedinput
//= require_tree .

就是这样。如果您发现任何不妥之处,请告诉我,我会进行编辑。

1 个答案:

答案 0 :(得分:1)

我一直在使用插件http://digitalbush.com/projects/masked-input-plugin,效果非常好。

我有很多带有不同掩码的字段,所以我在我的应用程序coffescript中使用了这个方法。

  $( "[data-mask]").each (index, value) ->
    element = $(value)
    element.mask($(value).data('mask'))

现在我可以在我的任何字段::

上设置data-mask属性
      <%= f.text_field(:phone, data: { mask: '(999) 999-9999' }) %>

我希望这有助于某人!