2010-04-19 6 views
1

J'ai une boîte de sélection qui donne une description d'un produit avec un prix. En fonction de ce que l'utilisateur sélectionne, j'aimerais saisir automatiquement ce montant de l'option sélectionnée et l'affecter à un champ de saisie de prix. Mon HTML:jquery parseFloat assignant val au champ

<tr> 
    <td> 
     <select class="selector"> 
      <option value="Item One $500">Item One $500</option> 
      <option value="Item Two $400">Item Two $400</option> 
     </select> 
    </td> 
    <td> 
     <input type="text" class="price"></input> 
    </td> 
</tr> 

donc basée sur ce qui est sélectionné, je veux 500 ou 400 attribué à l'entrée .class. J'ai essayé mais je ne suis pas tout à fait sûr où je vais mal:

$('.selector').blur(function(){ 
    var selectVal = ('.selector > option.val()'); 
    var parsedPrice = parseFloat(selectVal.val()); 
    $('.price').val(parsedPrice); 
}); 

Répondre

4

d'abord supprimer tout de l'attribut value qui ne fait pas partie de la valeur.

<tr> 
    <td> 
     <select class="selector"> 
      <option value="500">Item One $500</option> 
      <option value="400">Item Two $400</option> 
     </select> 
    </td> 
    <td> 
     <input type="text" class="price"></input> 
    </td> 
</tr> 

Ensuite, changez votre jQuery pour cela.

$('.selector').blur(function(){ 
    var parsedPrice = parseFloat($(this).val()); 
    $('.price').val(parsedPrice); 
}); 
+0

Pour une raison quelconque, la fonctionnalité de flou ne fonctionne pas comme prévu. Je m'attendrais à voir la valeur apparaître automatiquement dans le champ de prix après avoir fait une sélection, mais à la place, je dois cliquer dans le champ des prix, puis cliquer de nouveau dans la sélection, puis de nouveau cliquer dans le champ de prix et seulement alors la valeur apparaît. – user306472

+1

@ user306472 - C'est en fait la façon dont il est censé fonctionner. Utilisez l'événement 'change' à la place. – ChaosPandion

+0

user306472 vous devriez accepter de bonnes réponses –

Questions connexes