jQuery 货币输入掩码在 Rails 项目中不起作用
我正在使用 jquery-inputmask-rails gem。最终:它引入了 Robin Herbots 的 inputmask jQuery 插件 。
按照
jquery-inputmask-rails
gem 中的说明,我将其放入
application.js
中:
//= require jquery.inputmask
//= require jquery.inputmask.extensions
//= require jquery.inputmask.numeric.extensions
这是我的两个掩码:
$(document).on('turbolinks:load', function() {
$('.mask_phone').inputmask({mask: "(999) 999-9999"});
$('.mask_money').inputmask({alias: 'currency', rightAlign: true, placeholder: "", prefix: '', autoGroup: false, digitsOptional: true});
});
就用法而言:您应该能够将适当的掩码类添加到输入中:
<%= f.text_field :some_field, class: "mask_money" %>
我遇到的问题是
mask_phone
掩码有效,但
mask_money
根本不起作用。
我确实注意到日志中说这个:
TypeError: null is not an object (evaluating 'e.mask.toString')
奇怪的是,在另一个项目中:我没有使用 jquery-inputmask-rail gem,而是直接将 jQuery 输入掩码代码带入 Vendor 目录,并且它起作用了。
我遗漏了什么?
我的直觉告诉我,jquery-inputmask-rails gem 没有查看 Robin Herbots 输入掩码插件的更新版本。
- 我删除了 gem
-
我将 jQuery.inputmask.bundle.js 放在
vender
文件夹中。 -
在
application.js
中,我放入了//= require jquery.inputmask.bundle.js
并删除了与 gem 关联的 require 语句。
然后我的所有输入掩码都起作用了。
就我而言,我忘记执行/调用
initializeMasks();
因此,请不要忘记在视图中或
app/views/model/submodel/action.js.erb
文件中将其添加为
script
块,而不是在视图中使用
<scrip>
之后,我能够定义并看到我的
input
字段使用与此类似的内容正常工作
<%= f.input :ein, input_html: { data: { mask: '00-0000000' } } %>
如您所见,我的掩码并不复杂,只有两位数字,然后是一个破折号,然后是其他 7 位数字,但我希望这会有所帮助!