Come generare un codice univoco a partire dall'input utente? Possiamo creare un'unica stringa dai vari campi compilati dall'utente (nome, e-mail eccetera) e quindi estrapolare dei caratteri casuali da tale stringa e assemblare una nuova stringa con il codice restituito. Vediamo come ottenere questo risultato con jQuery.
Dobbiamo innanzitutto implementare la funzione che genera il codice:
var generateCode = function(str) {
var $length = 8;
var $code = '';
for (var i = 0; i < $length; i++) {
$code += str[Math.floor(Math.random() * (str.length - 1))];
}
return $code;
}
Il metodo random()
genera un indice casuale con cui estrarre i caratteri dalla stringa di input. Per funzionare è necessario che il suo valore venga approssimato e moltiplicato per la lunghezza della stringa di input meno 1 carattere.
Quindi possiamo raccogliere i valori di input in questo modo:
$('#test').submit(function(e) {
e.preventDefault();
var $str = '';
$('input[type="text"]', '#test').each(function() {
$str += $(this).val();
});
var code = generateCode($str);
alert(code);
});
Potete visionare l'esempio finale in questa pagina.