Comment puis-je faire passer la valeur d'un formulaire HTML à JavaScript?
Est-ce correct? Mon script prend deux arguments, un de la zone de texte, un de la liste déroulante.
<body>
<form name="valform" action="" method="POST">
Credit Card Validation: <input type="text" id="cctextboxid" name="cctextbox"><br/>
Card Type: <select name="cardtype" id="cardtypeid">
<option value="visa">Visa</option>
<option value="mastercard">MasterCard</option>
<option value="discover">Discover</option>
<option value="amex">Amex</option>
<option value="diners">Diners Club</option>
</select><br/>
<input type="button" name="submit" value="Verify Credit Card" onclick="isValidCreditCard(document.getElementById('cctextboxid').value,document.getElementById('cardtypeid').value)" />
</body>
javascript
html
utilisateur377419
la source
la source
Réponses:
HTML:
JS:
la source
nameValue
c'est la valeur par défaut et non ce que l'utilisateur a entré.Si vous souhaitez récupérer les valeurs du formulaire (telles que celles qui seraient envoyées à l'aide d'un HTTP POST), vous pouvez utiliser:
JavaScript
form-serialize ( https://code.google.com/archive/p/form-serialize/ )
jQuery
la source
FormData
lui-même ne fait rien ... vous devez toujours obtenir les valeurs du formulaire.FormData.entries()
afin de récupérer les valeurs. De plus,FormData.entries()
n'est pas disponible dans Safari, Explorer ou Edge. developer.mozilla.org/en-US/docs/Web/API/FormDataformData.entries()
, cela dépend de ce que vous recherchez. Si vous recherchez la valeur d'un seul champ, vous pouvez utiliserformData.get(name)
. Référence: get () .FormData
rien afficher sur Chrome.Voici un exemple de W3Schools:
La démo peut être trouvée ici .
la source
var obj = {};
pourvar obj = [];
.obj
, quel que soit celui qui est sélectionné. Le problème est démontré ici (choisissez 'Option 1') w3schools.com/code/tryit.asp?filename=GEZXJXBBI7AWdocument.forms
contiendra un tableau de formulaires sur votre page. Vous pouvez parcourir ces formulaires pour trouver la forme spécifique que vous désirez.Chaque formulaire a un tableau d'éléments que vous pouvez ensuite parcourir pour trouver les données souhaitées. Vous devriez également pouvoir y accéder par nom
la source
Mes 5 cents ici, en utilisant
form.elements
ce qui vous permet d'interroger chaque champ par luiname
, pas seulement par itération:la source
Expansion sur l'idée d'Atrur Klesun ... vous pouvez simplement y accéder par son nom si vous utilisez getElementById pour accéder au formulaire. En une seule ligne:
Je l'ai utilisé comme ça pour les boutons radio et j'ai bien fonctionné. Je suppose que c'est la même chose ici.
la source
Ceci est un exemple développé de https://stackoverflow.com/a/41262933/2464828
Considérer
Supposons que nous souhaitons récupérer l'entrée de nom
formula
. Cela peut être fait en passant leevent
sur leonsubmit
terrain. On peut ensuite utiliserFormData
pour récupérer les valeurs de cette forme exacte en référençant l'SubmitEvent
objet.Le code JavaScript ci-dessus imprimera alors la valeur de l'entrée dans la console.
Si vous souhaitez itérer les valeurs, c'est-à-dire obtenir toutes les valeurs, consultez https://developer.mozilla.org/en-US/docs/Web/API/FormData#Methods
la source
Plusieurs sérialiseurs de formulaires faciles à utiliser avec une bonne documentation.
Dans l'ordre des étoiles Github,
jquery.serializeJSON
jquery-serialize-object
form2js
form-serialize
la source
Veuillez essayer de changer le code comme ci-dessous:
la source
Solution rapide pour sérialiser un formulaire sans aucune bibliothèque
la source
la source