204 votes

JavaScript - Obtention des valeurs de formulaire HTML

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>

153voto

user406632 Points 1483

HTML:

 <input type="text" name="name" id="uniqueID" value="value" />

JS:

 var nameValue = document.getElementById("uniqueID").value;

145voto

Kevin Farrugia Points 41

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

 const formData = new FormData(document.querySelector('form'))
for (var pair of formData.entries()) {
  // console.log(pair[0] + ': ' + pair[1]);
}

form-serialize ( https://code.google.com/archive/p/form-serialize/ )

 serialize(document.forms[0]);

jQuery

 $("form").serializeArray()

46voto

Voici un exemple de W3Schools:

 function myFunction() {
    var elements = document.getElementById("myForm").elements;
    var obj ={};
    for(var i = 0 ; i < elements.length ; i++){
        var item = elements.item(i);
        obj[item.name] = item.value;
    }

    document.getElementById("demo").innerHTML = JSON.stringify(obj);
}

La démo peut être trouvée ici .

32voto

Codeacula Points 1544

document.forms contiendra un tableau de formulaires sur votre page. Vous pouvez parcourir ces formulaires pour trouver la forme spécifique que vous désirez.

 var form = false;
var length = document.forms.length;
for(var i = 0; i < length; i++) {
    if(form.id == "wanted_id") {
        form = document.forms[i];
    }
}

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

 var wanted_value = form.someFieldName.value;
jsFunction(wanted_value);

16voto

Artur Klesun Points 2708

Mes 5 cents ici, en utilisant form.elements qui vous permet d'interroger chaque champ par son name , pas seulement par itération:

 const form = document.querySelector('form[name="valform"]');
const ccValidation = form.elements['cctextbox'].value;
const ccType = form.elements['cardtype'].value;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X