2011-02-06 6 views
1

Je voudrais poser une question. Comment puis-je transmettre le code généré par javascript au "code" de la zone de texte?comment passer la variable javascript à la zone de texte?

je surfe sur Internet, mais je ne peux pas trouver la réponse

J'espère que tous vous pouvez me aider.

merci !!

<form><input name="code" type="text" value="" > 
       <script> 
        function makeid() 
        { 
         var text = ""; 
         var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 

         for(var i=0; i < 6; i++) 
          text += possible.charAt(Math.floor(Math.random() * possible.length)); 

         alert(text); 
         return text; 
        }  
       </script> 
        <input type="button" style="font-size:9pt" value="Generate Code" onclick="makeid()"> 
        </input></form> 

Répondre

0

Vous devez définir la valeur value de cette zone de texte. Si son id était code, vous pouvez simplement faire ceci:

document.getElementById('code').value = text; 

Mais tel qu'il est, vous devrez faire défiler toutes entrées chercher:

var inputs = document.getElementsByTagName('input'), 
    i = inputs.length; 

while (i) { 
    i -= 1; 
    if (inputs[i].name === 'code') { 
     inputs[i].value = text; 
     break; 
    } 
} 
+0

Pourquoi '' === dans 'si (entrées [i] .name === 'code')'? –

+1

vous n'avez pas besoin de parcourir tous les éléments d'entrée dans un formulaire, car vous pouvez utiliser 'getElementsByName' pour obtenir la zone de texte avec une propriété name. Donc, votre deuxième exemple peut être réécrit comme 'var codeElem = document.getElementsByName ('code') [0]' pour obtenir la seule zone de texte comme indiqué dans la question. –

+0

@Livingston Je pensais, comme je l'ai écrit, "Il y a une meilleure façon, il doit y avoir." @Javed Le '===' s'assure de comparer les valeurs réelles. Par exemple, '0 ===" 0 "' est faux, même si '0 ==" 0 "' est vrai. – sdleihssirhc

0

Le code suivant la modification pour les deux champs d'entrée entraînera l'apparition de la chaîne aléatoire dans le champ de saisie, en plus de la zone d'alerte:

<input name="code" id="code" type="text" value="" > 
<!-- original javascript code goes here--> 
<input type="button" style="font-size:9pt" value="Generate Code" 
    onclick="document.getElementById('code').value = makeid()"> 
1

Vous devez définir la valeur de la zone de texte, plutôt que de retourner la valeur

Le code mis à jour,

var codeElem = document.getElementById('code'); 

function makeid() { 
    var text = "", possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZ", i = 0; 

    for(; i < 6; i++) { 
    text += possible.charAt(Math.floor(Math.random() * possible.length)); 
    } 

    //alert(text); 

    codeElem.value = text; 
}​ 

Vous avez d'ajouter un attribut id à la zone de texte, de sorte qu'il peut être accédé facilement.

<input id="code" name="code" type="text" value="" > 

travail example

Questions connexes