Проблема с драгоценными камнями в 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 добавляет значение к скрытым полям кокона.
Мое решение состоит в том, чтобы сделать класс для телефона, а затем использовать его для выбора.