Настройка маскирования ввода с помощью jQuery ruby ​​gem

Я пытался реализовать маскировку ввода на своем сайте для поля номера телефона. По какой-то (вероятно, глупой) причине у меня не получается связать мой код с плагином jQuery. Я загрузил гем Ruby и выполнил все шаги, но мой браузер говорит, что переменные не определены. Подозреваю, что не правильно настроил гем.

ссылка на Github

Основной веб-сайт для функциональности

Я установил драгоценный камень в свой gemfile и запустил пакет

Я включил вызов в свой application.js

Затем попытался реализовать это в моем коде

Я знаю, что ему нужен файл: jquery.mask.min.js, но не могу связать его с моим проектом

Если есть более простой способ реализовать эту функциональность в Ruby on Rails, я бы с удовольствием им воспользовался!

PS: я возвращаюсь к программированию после долгого перерыва, поэтому у меня проблемы с выполнением таких простых вещей!

<div class="form-group col-md-6">
<label>Phone</label>

<%= f.text_field :phone, class: 'control phone_us', maxlength: 20 %>

</div>
<script type="text/javascript">
  $(document).ready(function(){
    ('.phone_us').mask('(000) 000-0000');
  })
</script> 
Uncaught TypeError: ".phone_us".mask is not a function

    at HTMLDocument.<anonymous> (<anonymous>:3:19)
    at mightThrow (jquery3.self-e200ee796ef24add7054280d843a80de75392557bb4248241e870fac0914c0c1.js?body=1:3558)
    at process (jquery3.self-e200ee796ef24add7054280d843a80de75392557bb4248241e870fac0914c0c1.js?body=1:3626)

person Gaelen    schedule 13.09.2019    source источник


Ответы (1)


Похоже, вам не хватает $ перед ('.phone_us'). Нравиться:

$('.phone_us').mask('(000) 000-0000');

Кроме того, если вы используете турбоссылки, вам, вероятно, потребуется прослушивать событие turbolinks:load, например:

$(document).on "turbolinks:load", ->
  alert "page has loaded!"

Как указано в документации в разделе 5.2 События смены страницы.

person jvillian    schedule 13.09.2019
comment
Большое спасибо!! Это исправило :) - person Gaelen; 13.09.2019