J'essaie d'utiliser jquery ou javascript pour obtenir toutes les valeurs d'entrée dans une chaîne (1,2,3,4) et ignorer la valeur vide. Je vous remercie.

<form id="sym_form">
			 <input type="text" class="as_sym" id="sym_1" value="1">
			 <input type="text" class="as_sym" id="sym_2" value="2">
			 <input type="text" class="as_sym" id="sym_3" value="3">
			 <input type="text" class="as_sym" id="sym_4" value="4">
			 <input type="text" class="as_sym" id="sym_5" value="">

		 </form>
0
conan 8 août 2016 à 01:39

4 réponses

Meilleure réponse
  // string to keep the result
  var output = "";
  // iterate over all inputs with class 'as_sym' inside the '#sym_form'
  $('#sym_form > input[class=as_sym]').each(function(){
    // only inputs with non-empty values                                                                                                        
    if ($(this).val() != "") {
      // the first value doesn't have a comma in front of it
      // subsequent values do have a comma in front of them
      if (output == "") {
        output += $(this).val();
      } else {
        output += "," + $(this).val();
      }
    }
  });
  // here do whatever you want with the 'output' variable
1
Vicente Olivert Riera 7 août 2016 à 23:01
var $inputs = $('#sym_form .as_sym');
var result ="";

$.each($inputs, function(i, v) {
   var val = $(this).val();
   result += val;
  });

$('#result').text(result);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form id="sym_form">
			 <input type="text" class="as_sym" id="sym_1" value="1">
			 <input type="text" class="as_sym" id="sym_2" value="2">
			 <input type="text" class="as_sym" id="sym_3" value="3">
			 <input type="text" class="as_sym" id="sym_4" value="4">
			 <input type="text" class="as_sym" id="sym_5" value="">

		 </form>

<p id="result"></p>
1
JustH 7 août 2016 à 22:50

Vous pouvez utiliser .querySelectorAll() pour sélectionner tous les éléments "#sym_form .as_sym", Array.prototype.forEach(), Function.prototype.call() pour attacher un événement input à chaque élément, lors de la input événement concanténation des valeurs de chaque élément "#sym_form .as_sym" dans une chaîne, utilisez .split(), .join() pour inclure une virgule , caractère entre chaque caractère ou chaîne résultante

var inputs = document.querySelectorAll("#sym_form .as_sym");
Array.prototype.forEach.call(inputs, function(input) {
  input.addEventListener("input", function(e) {
    for (var i = 0, val = "", len = inputs.length; i < len; i++) {
      val += inputs[i].value;
    }
    console.log(val.split("").join(","))
  })
})
<form id="sym_form">
  <input type="text" class="as_sym" id="sym_1" value="1">
  <input type="text" class="as_sym" id="sym_2" value="2">
  <input type="text" class="as_sym" id="sym_3" value="3">
  <input type="text" class="as_sym" id="sym_4" value="4">
  <input type="text" class="as_sym" id="sym_5" value="">

</form>
0
guest271314 7 août 2016 à 22:58
const form = document.getELementById("sym_form");
for (var element of form.elements) {
    if(element.nodeName === "INPUT" && element.value) {
        // do something with element.value
    }
}
1
Hunter 7 août 2016 à 22:45