11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Imaginons un formulaire type remplir "numéro de série" à la windows ou adobe.

CONTEXTE : Il y a 6 champs de 4 caracteres qui se suivent.
Smiley xxxx Smiley xxxx Smiley xxxx Smiley xxxx Smiley xxxx

Ce que je souhaite, c'est de pouvoir par un simple jeu de copier/coller, en un seul coup, remplir toutes les cases.

Le petit plus sera un traitement de chaine.

Si je fais un copier/coller de l'une de ces lignes :
111122223333444455556666
1111 2222 3333 4444 5555 6666
1111-2222-3333-4444-5555-6666
1111.2222.3333.4444.5555.6666

au final le comportement attendu doit être suite à un coller dans le premier champs, l'affichage suivant, dans tous les cas ci-dessus :
[1111] [2222] [3333] [4444] [5555] [6666]

Si vous connaissez une methode, ou librairie javascript/jquery qui le permets, cela maidera beaucoup Smiley smile

Merci à vous .

aRT
Bonjour,
Donc si j'ai bien compris, en collant la chaîne de caractères dans le premier champs, elle doit se répartir dans tous les champs.
Pour cela, il suffit de récupérer la chaîne du premier champs en JavaScript et de la découper a l'aide de la méthode :
.split()

Exemple :

var machaine = "123-456";
var chaineDecoupee = machaine.split("-");
console.log(chaineDecoupee[0]);
console.log(chaineDecoupee[1]);

Ici, le séparateur est le caractère -
Après il suffit de remplir les différents champs avec les valeurs contenues dans le tableau.
Modifié par Bguigui67 (07 Nov 2012 - 13:31)

function DecouperChaine(str)
{
  str = str.replace(/[^0-9]/, ''); // On purge la chaine des caractères non numériques

  var nbBlock = 6;
  var nbBlockChar = 4;
  var tab = [];

  if( str.length == (nbBlock * nbBlockChar ) ) // On vérifie que la chaine a la bonne longueur
  {
    for(var k = 0; k < nbBlock; k++)
    {
      var startingChar = ( k * nbBlockChar  );
      tab[k] = str.substr( startingChar  , ( startingChar + ( nbBlockChar - 1 ) ) );
    }

    return tab;
  }

  return false;
}

Modifié par JJK801 (07 Nov 2012 - 14:33)