app/assets/javascripts/administrate-field-money/application.js in administrate-field-money-0.0.6 vs app/assets/javascripts/administrate-field-money/application.js in administrate-field-money-0.1.0
- old
+ new
@@ -1,14 +1,38 @@
//= require jquery.maskMoney.min
$(function() {
- $('.maskmoney').each(function() {
- // Apply the mask and trigger it
- $(this).maskMoney().trigger('mask');
+ var getUnmaskedMoneyCents,
+ updateSiblingHiddenFieldValueOf,
+ syncUnmaskedValueWithHiddenField,
+ $applyMaskMoneyTo,
+ setupMaskMoney,
+ EVENTS_TO_SYNC = 'change keyup paste';
- // Sync unmasked value with hidden field
- $(this).on('change keyup paste', function() {
- var unmaskedMoneyCents = $(this).maskMoney('unmasked')[0] * 100;
- $(this).siblings('[type="hidden"]').val(unmaskedMoneyCents);
- })
- });
+ getUnmaskedMoneyCents = function($el) {
+ return $el.maskMoney('unmasked')[0] * 100;
+ };
+
+ updateSiblingHiddenFieldValueOf = function($el, getNewValue) {
+ $el.siblings('[type="hidden"]').val(
+ getNewValue($el)
+ );
+ };
+
+ syncUnmaskedValueWithHiddenField = function() {
+ updateSiblingHiddenFieldValueOf($(this), getUnmaskedMoneyCents);
+ };
+
+ $applyMaskMoneyTo = function(el) {
+ return $(el).maskMoney().trigger('mask');
+ };
+
+ setupMaskMoney = function() {
+ $applyMaskMoneyTo(this)
+ .on(
+ EVENTS_TO_SYNC,
+ syncUnmaskedValueWithHiddenField
+ );
+ };
+
+ $('[data-maskmoney]').each(setupMaskMoney);
});