Rails Admin输入掩码[Rails 6]

问题描述

我需要一些输入来具有遮罩。例如:电话字段应为“(xxx)xxxxx-xxxx”

如何在掩码中包含这些“()”和“-”。

我的应用程序使用Rails-Admin,我尝试添加一些js,但是当我访问'/ admin'

时不起作用

解决方法

为此,您需要使用自定义插件,我建议inputmask用于jQuery,因为Rails管理员已经包含jQuery。

然后您可以将库inputmask.js包含在

app/assets/javascripts/rails_admin/custom/inputmask.js

还有bindings for automasking

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'

这只是用mask配置字段的问题,因为inputmask.js的文档中建议这样

  rails_admin do
    edit do
      field :phone do
        html_attributes do
          {
            'data-inputmask' => "'mask': '(999) - 99999-9999'"
          }
        end
      end
    end

我在我的项目中尝试过它,就像这样

Screenshot of field with custom mask

,

也为此苦苦挣扎了一段时间,但这个程序终于奏效了:

  1. 在此处获取此 gem 的最新推荐版本并添加到 Gemfile: https://rubygems.org/gems/jquery-mask-plugin

  2. 在终端中运行包

  3. 重启 rails 服务器

  4. 添加这些行(原样):

//= 需要 jquery.inputmask

//= 需要 jquery.inputmask.extensions

//= 需要 jquery.inputmask.numeric.extensions

//= 需要 jquery.inputmask.date.extensions

..在你项目的这个文件夹中:app/assets/javascripts/application.js

  1. 按照 gem 文档中的说明选择最适合您的方法:https://github.com/RobinHerbots/Inputmask (我用的是jquery插件)