Проблема с драгоценными камнями в Rails Cocoon с маской jquery: новая запись создается каждый раз

Я использую Cocoon 1.1.1 для вложения полей телефона для Person модель. Я хотел иметь маску ввода для номера телефона, поэтому я включил jquery.maskedinput-1.3.min.js в папке Javascript.

Кажется, что когда я применяю маску, параметры, представленные в Rails, пропускают id для атрибутов телефона:

 "phones_attributes"=>{"0"=>{"number"=>"214-648-4417", "label"=>"Work", "_destroy"=>"", "id"=>''}}}

Это создает новые записи каждый раз. На данный момент я не добавляю новые номера телефонов, просто нажимаю на Обновить.

Это мой сценарий кофе:

jQuery.fn.addPhoneMasks = ->
  $('input[id*="phone"]').each ->
    $(this).mask("999-999-9999?")

jQuery ->
  $('div#phones').addPhoneMasks()

(Примечание: мне нужно будет использовать обратные вызовы вставки, чтобы применить маску к вновь вставленным полям телефона, но я еще не там:))

1 ответ

Я нашел свою ошибку: маску не следует использовать id*="phone" потому что плагин jquery добавляет значение к скрытым полям кокона.

Мое решение состоит в том, чтобы сделать класс для телефона, а затем использовать его для выбора.

Другие вопросы по тегам