【问题标题】:jQuery money input mask not working in rails projectjQuery资金输入掩码在rails项目中不起作用
【发布时间】:2017-07-07 16:02:59
【问题描述】:

我正在使用jquery-inputmask-rails gem。最终:它吸引了 Robin Herbots 的inputmask jQuery plugin

按照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 不是对象(评估 'e.mask.toString')

奇怪的是,在另一个项目中:我没有使用 jquery-inputmask-rail gem,而是直接将 jQuery 输入掩码代码引入到 Vendor 目录中,并且成功了。

我错过了什么?

【问题讨论】:

  • 定位正确的类? $('.mask_amount_in_cents')
  • 抱歉错字,我会改正的。
  • 在这句话中“我遇到的问题是 mask_phone 掩码有效,但 mask_amount_in_cents 根本不起作用。” “mask_amount_in_cents”也应该是“mask_money”吗?
  • 抱歉错字我会改正的。应该是 mask_money。

标签: ruby-on-rails ruby jquery-inputmask


【解决方案1】:

我的直觉告诉我,jquery-inputmask-rails gem 没有查看 Robin Herbots 输入掩码插件的更新版本。

  • 我移除了宝石
  • 我将 jQuery.inputmask.bundle.js 放在 vender 文件夹中。
  • 我在 application.js 中添加了 //= require jquery.inputmask.bundle.js 并删除了与 gem 关联的 require 语句。

然后我所有的输入掩码都起作用了。

【讨论】:

    【解决方案2】:

    就我而言,我忘了执行/调用

    initializeMasks();

    所以不要忘记在视图或app/views/model/submodel/action.js.erb 文件中将其添加为script 块,而不是在视图中使用&lt;scrip&gt;

    之后我能够定义并看到我的 input 字段使用与此类似的东西工作得很好

    &lt;%= f.input :ein, input_html: { data: { mask: '00-0000000' } } %&gt;

    如您所见,我的面具并不复杂,只有两位数,然后是破折号,然后是其他 7 位数字,但我希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多