webdesign jquery drupal javascript php

JQuery per campi form con prima lettera di ogni parola maiuscola

Nel sito dell'associazione di kayak 360kayak.org si chiede agli utenti di usare Nome Cognome come username in fase di registrazione. Purtroppo non tutti capiscono di dover usare la prima lettera maiuscola e le altre minuscole (standard italiano, presumo anche internazionale, per i nomi propri). C'è chi scrive tutto in maiscolo, chi tutto in minuscolo. Così ho aggiunto una funzione in Javascript che sistemasse nomi e cognomi. Il sito è basato su Drupal, quindi ho aggiunto questa modifica al modulo *kayak2012mod", che è un modulo personalizzato.

Questo è il file sites/default/modules/kayak2012mod/js/user_register.js

(function($) {
  jQuery.fn.capitalize = function() {
    $(this[0]).keyup(function(event) {
      var box = event.target;
      var txt = $(this).val();
      var start = box.selectionStart;
      var end = box.selectionEnd;
      txt = txt.toLowerCase();
      txt = txt.replace(/^(.)|(\s|\-)(.)/g, function($1) {
        return $1.toUpperCase();
      });
      $(this).val(txt);
      box.setSelectionRange(start, end);
    });
    return this;
  }

  $(document).ready(function() {
    $('#edit-name').capitalize();
  });
})(jQuery);

Mentre questa è l'aggiunta a sites/default/modules/kayak2012mod/kayak2012mod.module

function kayak2012mod_preprocess_html(&$variables, $hook) {
  if (in_array('page-user-register', $variables['classes_array'])) {
    drupal_add_js(drupal_get_path('module', 'kayak2012mod') . '/js/user_register.js');
    $form['scripts'] = drupal_get_js();
  }
}

Ti è piaciuto l'articolo? Condividilo! Commentalo!

comments powered by Disqus