J'apprends JavaScript et je fais un projet simple où j'ai un formulaire (avec nom code>,
lastname code> et
Âge code>) et un bouton. Je souhaite que l'utilisateur remplisse le formulaire et appuyez sur le bouton. Après cela, je souhaite utiliser l'événement
.nonClick code> pour stocker toutes les informations d'un tableau.
Ensuite, je souhaite créer un autre bouton lorsque j'ai appuyé sur IL indique une liste de tous les noms, nom de famille et âge de mon tableau. Le problème est que la matrice que je crée à l'intérieur de la fonction d'événement .Onclick ne peut être utilisée en dehors de ladite fonction. Est-ce que je fais quelque chose de mal ou est-il impossible de faire ça?
Voici une partie de mon code: strong>
4 Réponses :
Définir simplement Listafinal code> en tant que variable globale et modifier sa valeur dans la fonction:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
<title>Ejercicio 2</title>
</head>
<body style="background-color: #F1E8B8">
<div id="contenedor">
Nombre:
<br>
<input type="text" name="Nombre" maxlength="20" id="nombre">
<br>
Apellido:
<br>
<input type="text" name="Apellido" maxlength="20" id="apellido">
<br>
Edad:
<br>
<input type="number" name="Edad" id="edad">
<br>
<br>
<button type="button" id="input">Ingresar</button>
</div>
<button type="button" id="ver">Ver Lista</button>
<br>
<div id="resultado"></div>
<button onclick="newFunction()">Another button</button>
<script src="javascript2.js"></script>
</body>
</html>
J'ai édité mon message alors maintenant, il est plus clair pour vous les gars. J'ai essayé ce que vous et les autres suggéra, mais je ne créerais pas un tableau d'un tableau? J'ai édité mon code mais cela ne reconnaîtra pas la valeur de la listeAfinal.name de la matrice.
Vous utilisez la variable lishafinal code> quand il n'a pas de valeur. Signifie que vous devriez écrire ce code dans la fonction oncclick
résultantdo.innerhtml = listAfinal [0] .name; code>
Oui, cela fonctionnerait mais je veux montrer mon tableau lorsque vous cliquez sur un autre bouton, pas le même que j'utilise pour charger mon tableau. La raison pour laquelle j'utilise le "résultatdo.innerhtml = listAfinal [0] nom" .- Et pas lorsque je clique sur un autre bouton est parce que je veux m'assurer qu'il fonctionne en premier, alors je vais créer un autre bouton et mettre le résultatdo.innerhtml = Listafinal [0] Nom; à l'intérieur
Oui c'est pourquoi nous utilisons des variables globales. Voir la réponse mise à jour pour plus de détails ...
Merci beaucoup!
Si vous déclarez votre variable en dehors de la fonction code> onclick code>, votre fonction onclick code> se référera à la variable en dehors de la fonction:
Ils auraient également besoin de supprimer le mot-clé var code> de la ligne appropriée à l'intérieur de la fonction, sinon il restera scopé à cette fonction.
Pourquoi cela a-t-il été évité? Y a-t-il quelque chose qui ne va pas avec ce que j'ai dit?
Vous pouvez déclarer puis la réaffectez à l'intérieur de la fonction: p> var listAfinal code> en dehors de la portée de la fonction.
Depuis que vous dites que c'est naïf, vous voudrez peut-être décrire pourquoi et éventuellement ajouter une alternative.
Semblable à la solution de Ritesh, mais vous n'avez même pas besoin de créer cette variable globale. Vous pouvez simplement l'ajouter à la fonction et l'accéder via INPUT.ONCLICK (comme INPUT.OnClick.ListFinal)
input.onclick = function() { this.listFinal=CrearArreglo(lista,i); }
Il est dit: "TypeError non capturé: ne peut pas lire la propriété" 0 "de non définie". Lorsque vous souhaitez utiliser la valeur de LISTAFORNAL, appelez-vous cela comme ceci? résultant.innerhtml = input.onclick.listafinal [0];
"comme input.onclick.listfinal code>" i>, non seulement
entrée.listfinal code> utiliserait donc
entrée.listfinal [0] code >. Bien que personnellement, je ne polluerais pas l'objet d'entrée HTML lui-même avec des données arbitraires.
S'il vous plaît poster aussi le HTML!
var listAfinal ... code> à l'aide de
var code> Vous faites une variable locale, supprimez le
var code> à partir de cette ligne et ajouter
var Listafinal; code> à une portée courante supérieure
D'accord! Je viens d'éditer mon post et je l'ai fait plus lisible lol, je vais essayer de faire cette variable un global! Merci tout le monde!!!