jQuery маска ввода денег не работает в проекте рельсов
Я использую драгоценный камень jquery-inputmask-rails. В конечном итоге: он использует плагин jQuery Робина Хербота для ввода маски.
Как указано в jquery-inputmask-rails
драгоценный камень, я положил это в 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, а вместо этого ввел код маски ввода jQuery непосредственно в каталог Vendor, и это сработало.
Что мне не хватает?
2 ответа
Моя интуиция говорит мне, что гем jquery-inputmask-rails не ищет обновленную версию плагина ввода маски Робина Херботса.
- Я удалил драгоценный камень
- Я поместил jQuery.inputmask.bundle.js в
vender
папка. - В
application.js
я кладу//= require jquery.inputmask.bundle.js
и удалил требуемые заявления, связанные с драгоценным камнем.
И тогда все мои входные маски сработали.
В моем случае я забыл выполнить / позвонить
initializeMasks();
так что не забудьте добавить это как script
блок в представлении или в app/views/model/submodel/action.js.erb
файл вместо использования <scrip>
прямо на виду
после этого я смог определить и увидеть мой input
поле работать просто отлично, используя что-то похожее на это
<%= f.input :ein, input_html: { data: { mask: '00-0000000' } } %>
Как вы можете видеть, моя маска не сложна, только две цифры, затем тире, а затем и другие 7 цифр, но я надеюсь, что это поможет!