Je veux pouvoir lire le texte qui est soumis dans une liste déroulante avec jQuery, car je veux ensuite le poster sur php. J'ai suivi un tutoriel mais j'ai le problème quand il ne lit pas la valeur de la liste déroulante.

Une alerte avec le nom sélectionné devrait apparaître lorsque vous appuyez sur le bouton d'actualisation. (Le bouton d'envoi dans le script ci-dessous est pour quelque chose de différent et des liens vers un fichier js différent. Sans objet)

function update() {
  var p1 = $("#playerOne").text();
  alert('youre name is ' + p1);
}
<div class="inputForm">
  <form id="frm1" onsubmit="return formSubmit()">
    <h3>Update League Table!</h3>
    <section class="playerOne">
      <label for="playerOne">Player One Name:</label>
      <select name="playerOne" id="playerOne">
        <option value="player1">Player 1</option>
        <option value="player2">Player 2</option>
        <option value="player3">Player 3</option>
        <option value="player4">Player 4</option>
      </select>
    </section>
    <section class="submission">
      <input type="submit" value="Submit">
    </section>
    <input class="refreshButton" type="button" value="Refresh" onclick="update()">
  </form>
</div>

Dans le fichier jquery, si je supprime var p1 = $("#playerOne").text();, l'alerte fonctionnera. Avec cela, l'alerte n'apparaît pas du tout.

J'ai essayé d'avoir le bouton d'actualisation à différents points du HTML, cela n'a pas fonctionné. J'ai déménagé là où <script type="text/javascript" src="jquery.js"></script> se trouve dans le code HTML, cela n'a pas fonctionné.

J'ai également essayé .val au lieu de .text. Et var p1 = $("#playerOne option:selected").text();. Aucun de ces éléments n'a fonctionné.

Toute aide est appréciée.

0
JackU 26 janv. 2019 à 18:46

5 réponses

Meilleure réponse

Vous pouvez le faire en utilisant un code JavaScript simple remplacer votre jQuery par

var _val = document.getElementById('playerOne').value;
alert(_val); // it will work for you
2
Rajesh 26 janv. 2019 à 15:59

$ ('# playerOne'). val () vous donnera la valeur sélectionnée de l'élément déroulant. Utilisez-le pour obtenir le texte des options sélectionnées.

$('#playerOne option:selected').text();
0
majid savalanpour 26 janv. 2019 à 15:58
function update() {
    var p1 = $( "#playerOne option:selected" ).text(); // for getting value in element
    alert ('youre name is ' +p1);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <link href="style.css" type="text/css" rel="stylesheet">
        <script type="text/javascript" src="script.js"></script>
        <script type="text/javascript" src="jquery.js"></script>
    </head>
    <body background="mkimage.png">

        <div class="inputForm">
            <form id="frm1" onsubmit="return formSubmit()">    
                <h3>Update League Table!</h3>
                <section class="playerOne">
                    <label for="playerOne">Player One Name:</label>
                    <select name="playerOne" id="playerOne">
                        <option value="player1">Player 1</option>
                        <option value="player2">Player 2</option>
                        <option value="player3">Player 3</option>
                        <option value="player4">Player 4</option>
                    </select>
                </section>
                <section class="submission">
                    <input type="submit" value="Submit">
                </section>
                <input class="refreshButton" type="button" value="Refresh" onclick="update()">
            </form>
        </div>

    </body>
</html>

Voici votre solution

Utilisez val () pour obtenir la valeur de la liste sélectionnée.

Si votre utilisation de text () jquery .it donnera tout le texte dans l'élément.

function update() {
    var p1 = $("#playerOne").val(); // for getting value in value attribute
    alert ('youre name is ' +p1);
}

function update() {
    var p1 = $( "#playerOne option:selected" ).text(); // for getting value in element
    alert ('youre name is ' +p1);
}
0
Mohan M 26 janv. 2019 à 15:59

Essayez ceci, pour obtenir l'option sélectionnée:

$( "#playerOne option:selected" ).text()
0
Brian Tompsett - 汤莱恩 26 janv. 2019 à 16:49

Essayez de changer votre sélecteur dans votre phrase jQuery:

function update() {
    var p1 = $("#playerOne option:selected").text();
    alert ('youre name is ' + p1);
}
0
Eriksen 26 janv. 2019 à 16:12