【发布时间】:2020-08-11 20:17:33
【问题描述】:
我需要一些输入来获得掩码。示例:电话字段应类似于“(xxx) xxxxx-xxxx”
如何在掩码中包含这些“()”和“-”。
我的应用程序使用 Rails-Admin,我尝试添加一些 js,但当我访问“/admin”时不起作用
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-6 rails-admin
我需要一些输入来获得掩码。示例:电话字段应类似于“(xxx) xxxxx-xxxx”
如何在掩码中包含这些“()”和“-”。
我的应用程序使用 Rails-Admin,我尝试添加一些 js,但当我访问“/admin”时不起作用
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-6 rails-admin
您需要为此使用自定义插件,我推荐 inputmask 用于 jQuery,因为 rails admin 已经包含 jQuery。
然后你可以将库inputmask.js 包含在
app/assets/javascripts/rails_admin/custom/inputmask.js
app/assets/javascripts/rails_admin/custom/inputmask.binding.js
然后在你的项目中添加这个文件
app/assets/javascripts/rails_admin/custom/ui.js
有了这个内容
//= require_tree .
//= require 'rails_admin/custom/inputmask.js'
//= require 'rails_admin/custom/inputmask.binding.js'
然后只需使用掩码配置字段即可,因为 inputmask.js 的文档建议类似这样
rails_admin do
edit do
field :phone do
html_attributes do
{
'data-inputmask' => "'mask': '(999) - 99999-9999'"
}
end
end
end
我在我的项目上试过它看起来像这样
【讨论】:
<input class="form-control" data-inputmask=" mask: '(99) 99999-9999' " type="text" name="telefone[telefone]" id="telefone_telefone" wfd-id="56"> 的字段。好像是在html中应用了遮罩,但仍然没有给我效果。
也为此苦苦挣扎了一段时间,但这个过程终于奏效了:
在此处获取此 gem 的最新推荐版本并添加到 Gemfile: https://rubygems.org/gems/jquery-mask-plugin
在终端中运行包
重启 Rails 服务器
添加这些行(原样):
//= 需要 jquery.inputmask
//= 需要 jquery.inputmask.extensions
//= 需要 jquery.inputmask.numeric.extensions
//= 需要 jquery.inputmask.date.extensions
..在你项目的这个文件夹中:app/assets/javascripts/application.js
【讨论】: