2009-05-28 5 views
0

Vous devez sélectionner une option de liste déroulante SELECT et déterminer si l'une des valeurs est un nombre entier, puis ajouter un .00 à l'option de valeur de liste. besoin de changer la valeur aussi bien.jQuery rechercher le nombre entier et ajouter la décimale

<select> 
    <option value="1">1</option> 
    <option value="1.99">1.99</option> 
    <option value="2.99">2.99</option> 
    <option value="4">4</option> 
</select> 

Merci à l'avance pour toute aide sur ce

+0

Ce n'est vraiment pas beaucoup de question JQuery, c'est juste javascript standard. JQuery peut être utilisé pour extraire facilement les valeurs de la boîte de sélection, mais cela n'a rien à voir avec le calcul. – Soviut

+0

Pas vraiment sûr de ce que vous faisiez, mais la 2ème solution n'arrondit pas les chiffres ... du moins pas avec les données que vous avez là-bas ... –

+0

J'ai juste besoin d'ajouter le .00 si le nombre est un nombre entier 0-9 pas besoin d'arrondir le nombre non plus. Merci! –

Répondre

6

Pas assez sûr si cela est la meilleure façon, mais cela fonctionne:

$('option', '#myselect').each(function() { 
    if($(this).val() == parseInt($(this).val(), 10)) { 
     var x = $(this).val() + '.00'; 
     $(this).val(x).text(x); 
    } 
}); 

Demo.

À la réflexion, vous pouvez aussi le faire en utilisant toFixed, ce qui est plus propre:

$('option', '#myselect').each(function() { 
    var x = Number($(this).val()).toFixed(2); 
    $(this).val(x).text(x); 
}); 

Demo.

+0

J'aime la première solution, mais ne fonctionne pas sur le rechargement de la page lorsque les valeurs sont peuplées à partir de la base de données –

+0

BTW J'ai regardé dans votre deuxième solution et il semble arrondir le nombre. Je voulais juste clarifier si c'est le cas? –

+0

Comment l'utiliser pour les nombres à deux et trois chiffres? 10 doit être 10,00 et 100 doit être 100,00 –

Questions connexes