J'essaie d'obtenir chaque valeur d'entrée au clavier avec une virgule séparée. Mon code fonctionne très bien avec l'événement onclick mais pas avec le keyup.

<input type="text" class="date" name="date[]" onkeyup="showHint(this.value)" />

Cela fait partie de mon showhint de fonction js où je définis la valeur d'entrée.

var DoB = [];
$(".date").each(function(){
     DoB.push($(this).val());
});
var newDob = DoB.slice(0,-1);

xmlhttp.open("GET","validation.php?q="+newDob+",true);

Quelqu'un peut-il m'aider avec ce qui est mon erreur ici?

Merci d'avance.

0
Zain 16 avril 2018 à 15:14

4 réponses

Meilleure réponse

Êtes-vous sûr que le problème est le keyup? Il me semble que DoB.slice(0, -1) empêche votre code de fonctionner.

Je l'ai remplacé par un DoB.join(','); pour créer la chaîne séparée par des virgules.

function showHint(someValue) {

var DoB = [];
$(".date").each(function(){
     //console.log($(this).val());
     DoB.push($(this).val());
});
//var newDob = DoB.slice(0, -1);
var newDob = DoB.join(',');
document.getElementById("URL").value = "validation.php?q="+newDob;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" class="date" name="date[]" onkeyup="showHint(this.value)" />
<input type="text" class="date" name="date[]" onkeyup="showHint(this.value)" />

<br>URL : <input type="text" size="50" id="URL"/>
0
Guillaume Georges 16 avril 2018 à 12:35

Selon votre code, vous n'avez pas à conserver le tableau DoB. car vous n'avez qu'un seul élément dob. et vous pouvez directement obtenir la valeur de l'entrée.

Le code suivant fonctionnera pour vous

function showHint(){
    var DoB = $(".date").val();
    console.log(DoB);
    xmlhttp.open("GET","validation.php?q="+DoB +",true);
}
0
Baba Khedkar 16 avril 2018 à 12:34

J'ai également eu cela avant, quand j'ai utilisé l'événement onkeyup dans le script lui-même, cela fonctionne bien pour moi.

Voici un exemple:

document.getElementById("fname").onkeyup = function() {myFunction()};

function myFunction() {
    var x = document.getElementById("fname");
    x.value = x.value.toUpperCase();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<body>

<p>Press a key inside the text field and release it to set the text to uppercase.</p>

Enter your name: <input type="text" id="fname">
</body>
</html>
0
mrdeadsven 16 avril 2018 à 12:35

Essaye ça:

$( ".date" ).keyup(function() {
   DoB.push($(this).val());
});
0
b3nc1 16 avril 2018 à 12:33