6
votes

JQuery - Changer texte avec sélecteur déroulant

Cela pourrait être facile, mais je suis une jQuery Dunce et continuez à obtenir des erreurs!

Fondamentalement, j'ai une fonction de base JQuery 1.4+ qui met à jour une valeur d'entrée - mais je suis maintenant difficile à comprendre Comment utiliser également JQuery pour mettre à jour simultanément un texte dans la zone lorsque différentes valeurs sont choisies avec un sélecteur déroulant. Le script et le code HTML ressemble à ceci: p>

p>

<form action="" method="post">
  <input type="hidden" id="myhidden3" name="quantity" value="1" />
  <input type="submit" name="submit" class="button" id="" value="Button" />
  <select id='mycups3'>
    <option value='1'>1 Item</option>
    <option value='2'>2 Items</option>
    <option value='3'>3 Items</option>
  </select>
  <span>$1.50</span>
</form>


1 commentaires

J'ai vu quelques suggestions où les gens obtiennent la valeur de la liste déroulante et la multiplient par 1.5 N'oubliez pas d'utiliser Paysint () sur X avant de l'utiliser dans une expression. Utilisation - parseint (x) || 0 - Où 0 est votre fossé si x échoue à analyser (renvoie Nan)


6 Réponses :


0
votes

Utilisez la méthode HTML.

$('span').html("$1.50");


0 commentaires

3
votes

Je suggérerais d'ajouter un ID à la portée puis de faire quelque chose comme ceci: xxx


0 commentaires

14
votes

Essayez ceci:

<script type='text/javascript'>     
    $(function() {         
        $('#mycups3').change(function() {             
            var x = $(this).val();             
            $('#myhidden3').val(x);         
            $(this).next("span").text("$" + (x * 1.5).toFixed(2));
        });     
    }); 
</script> 


1 commentaires

Oui! C'était un bon moyen de le faire. Une seule question si, dans le cas où le résultat est de 4,5 $ - Comment s'assurer qu'un autre "0" est ajouté pour le faire 4,50 $? Je suppose que c'est une question de formatage, alors j'essaie d'expérimenter .tofixed (); ?



1
votes

Vous pouvez utiliser la fonction Texte () pour définir ou obtenir le texte d'un élément HTML (ne fonctionne pas sur les champs de saisie!). Votre exemple de code peut ressembler à ceci: XXX


0 commentaires

3
votes

Vous pouvez utiliser la fonction .html () après avoir sélectionné la portée que vous souhaitez modifier E.g.: XXX


0 commentaires

1
votes

Exemple de travail: http://jsfiddle.net/peeter/fyfxp/
$(document).ready(function() {
    $('#itemQuantitySelect_3').change(function() {

        var itemPrice = 1.50;
        var itemQuantity = $(this).val();
        var quantityPrice = (itemPrice * itemQuantity).toFixed(2);

        $(this).next("span").html("$" + quantityPrice);

    });
});


0 commentaires